มีครั้งเมื่อคุณต้องการที่จะใช้แม่แบบที่แตกต่างกันขึ้นอยู่กับมูลค่าของส่วนหัวของการร้องขอ HTTP มี ตัวอย่างเช่นชื่อโดเมนที่แตกต่างกันชนิดเบราว์เซอร์ที่แตกต่างกันหรือแม้กระทั่งหน้าหมาย โครงการ dynamicloader ช่วยให้คุณระบุรายชื่อของไดเรกทอรีที่แยกต่างหากซึ่ง Django ควรมองหาแม่แบบขึ้นอยู่กับค่าในหัวข้อการร้องขอ
การติดตั้ง
1. ติดตั้ง `` dynamicloader`` ในเส้นทางหลามของคุณ
2. เพิ่ม `` 'dynamicloader.middleware.RequestMiddleware' `` `ของคุณลงในการตั้งค่า` MIDDLEWARE_CLASSES``
3. เพิ่ม `` 'dynamicloader.loader.load_template_source' `` ที่ * * * * * * * * ด้านบนของ `` TEMPLATE_LOADERS`` ของคุณการตั้งค่า
4. สร้างการตั้งค่าใหม่ `` DYN_TEMPLATE_MAP`` ในรูปแบบต่อไปนี้ ::
& nbsp; & nbsp; & nbsp; DYN_TEMPLATE_MAP = {
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 'HTTP_HEADER1': {
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; re.compile ('value1'): ('/ path / to / directory', '/ path / to / directory2',)
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; re.compile ('value2'): ('/ path / to / directory3',)
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; }
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 'HTTP_HEADER2': {
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; re.compile ('value1'): ('/ path / to / directory4',)
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; }
& nbsp; & nbsp; & nbsp; }
ตัวอย่างแผนที่แม่แบบ
ชื่อโดเมนที่แตกต่างกัน
ตัวอย่างเช่นนี้จะช่วยให้การแทนที่ของแม่แบบบางอย่างขึ้นอยู่กับชื่อโดเมนหรือโดเมนย่อย ในการติดตั้งนี้ Django จะมองใน `` / path / to / directory`` แรกถ้า `` HTTP_HOST`` รวมถึงมูลค่า `` www2``
& nbsp; & nbsp; & nbsp; DYN_TEMPLATE_MAP = {
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 'HTTP_HOST': {
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; re.compile ('www2'): ('/ path / to / directory',)
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; }
& nbsp; & nbsp; & nbsp; }
เบราว์เซอร์ที่แตกต่างกัน
ตัวอย่างเช่นนี้จะช่วยให้การจัดส่งของแม่แบบที่แตกต่างกัน (หรือคนที่เฉพาะเจาะจงแค่) ขึ้นอยู่กับเบราว์เซอร์ของผู้ใช้
& nbsp; & nbsp; & nbsp; DYN_TEMPLATE_MAP = {
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "HTTP_USER_AGENT": {
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; re.compile ('iPhone | iPod') ('/ path / to / directory',)
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; }
& nbsp; & nbsp; & nbsp; }
Query String ความแตกต่าง
ตัวอย่างนี้จะตรวจสอบสตริงแบบสอบถามที่จะตัดสินใจว่าแม่แบบเพื่อใช้ตามสตริงแบบสอบถาม (สิ่งหลังจากที่ '' ใน URL)
DYN_TEMPLATE_MAP = {
& nbsp; & nbsp; & nbsp; 'QUERY_STRING': {
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; re.compile ('imreallycool = 1): (' / path / to / directory ',)
& nbsp; & nbsp; & nbsp; }
}
ต้องการ
- หลาม
- Django
ความคิดเห็นที่ไม่พบ