有次当你想使用基于HTTP请求头的值不同的模板。例如,不同的域名,不同的浏览器的类型,或者甚至是指页面。该项目dynamicloader允许你指定哪个Django的应该寻找模板的基础上,在请求头值目录的单独列表。
安装
1.安装``dynamicloader``在Python路径。
2.添加``'dynamicloader.middleware.RequestMiddleware',``到``MIDDLEWARE_CLASSES``设置。
3.添加``'dynamicloader.loader.load_template_source',``你``TEMPLATE_LOADERS``设置的*顶部*。
4.创建一个新的设置,``DYN_TEMPLATE_MAP``,按以下格式::
    DYN_TEMPLATE_MAP = {
        “HTTP_HEADER1”:{
            re.compile('值1'):('/路径/到/目录','/路径/要/ directory2',),
            re.compile('值'):('/路径/要/ directory3目录',)
        },
        “HTTP_HEADER2”:{
            re.compile('值1'):('/路径/要/ directory4',)
        }
    }
模板地图例子
域名差异
这个例子可以基于域名或子一定的模板覆盖。在这种设置中,Django会看在``/路径/要/ directory``第一,如果``HTTP_HOST``包括值``www2``。
    DYN_TEMPLATE_MAP = {
        “HTTP_HOST”:{
            re.compile('WWW2'):('/路径/到/目录',),
        },
    }
浏览器差异
本实施例允许基于用户的浏览器不同的模板(或只是特定的)的输送。
    DYN_TEMPLATE_MAP = {
        “HTTP_USER_AGENT”:{
            re.compile('iPhone | iPod的'):('/路径/到/目录',),
        },
    }
查询字符串差异
这个例子检查查询字符串来决定哪个模板使用基于(在一个URL之后的东西'?')查询字符串。
DYN_TEMPLATE_MAP = {
    “QUERY_STRING”:{
        re.compile('imreallycool = 1'):('/路径/到/目录',),
    },
}
要求:
- 在Python中
- 在Django的
评论没有发现