国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Python > 正文

django創(chuàng)建自定義模板處理器的實(shí)例詳解

2020-02-16 02:04:44
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

django創(chuàng)建自定義模板處理器:

一、需求來(lái)源:

在django開(kāi)發(fā)中,頁(yè)面是通過(guò)template(模板)進(jìn)行渲染的,對(duì)于一些數(shù)據(jù),可以通過(guò){{ 變量 }}的方式進(jìn)行傳遞。但是,如果整個(gè)網(wǎng)站中,或者整個(gè)網(wǎng)站的大部分頁(yè)面都用到了一些變量或者數(shù)據(jù),那么每次渲染的時(shí)候都傳遞一次這幾個(gè)數(shù)據(jù)顯得相當(dāng)?shù)娜哂?。這與django的DRY(Don't repeat yourself)思想不符,因此django提供了一種方式,讓你能自定義處理器。

二、django默認(rèn)的處理器:

在django開(kāi)發(fā)中,django默認(rèn)為你加載了四個(gè)處理器,這些處理器是django包自帶的。你可以在settings.py中的TEMPLATES的OPTIONS的context_processors中找到所有django為你默認(rèn)加載的處理器。
其中有包括:

'django.template.context_processors.debug',        'django.template.context_processors.request','django.contrib.auth.context_processors.auth',        'django.contrib.messages.context_processors.messages',

三、自定義django處理器:

建議在項(xiàng)目的主app下(也就是你的項(xiàng)目名稱的app下)創(chuàng)建一個(gè)文件叫做context_processors.py
不管是自定義的處理器還是django自帶的處理器,都是定義一個(gè)函數(shù),這個(gè)函數(shù)帶有一個(gè)request的參數(shù),返回一個(gè)字典,用來(lái)表示模板中的參數(shù)。

比如我們要?jiǎng)?chuàng)建一個(gè)帶有個(gè)人信息的處理器,格式如下:

def mycontact(request):  return {    'telephone': 'aaa',    'qq': 'bbb',    'email': 'cc@163.com'  }

在settings.py配置文件中,找到TEMPLATES里面的context_processors,然后在后面添加你的自定義的處理器,比如我們的項(xiàng)目名稱叫mysite,然后我把context_processors.py放到了mysite/mysite下面,也就是和settings.py同級(jí)的目錄下,因此加載的路勁為mysite.context_processors.mycontact,因此,現(xiàn)在的context_processors中的數(shù)據(jù)如下:

'context_processors': [  'mysite.context_processors.mycontact',          'django.template.context_processors.debug',          'django.template.context_processors.request',          'django.contrib.auth.context_processors.auth',          'django.contrib.messages.context_processors.messages',    ]

以后你就可以在你的模板文件中,通過(guò){{變量}}的方式引入你的變量了。

注意事項(xiàng):你必須在TEMPLATES中將APP_DIRS設(shè)置為T(mén)rue,django才會(huì)加載你放在django的app下面的處理器。

如有疑問(wèn)請(qǐng)留言或者到本站社區(qū)交流討論,大家共同進(jìn)步,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 虹口区| 高阳县| 陇南市| 常宁市| 涡阳县| 肃宁县| 萨迦县| 宝坻区| 汝城县| 锦州市| 鹤庆县| 永清县| 东明县| 长岭县| 遂平县| 东城区| 孙吴县| 文登市| 仁怀市| 景宁| 呼伦贝尔市| 仁布县| 陇川县| 安庆市| 九江县| 巴马| 泰和县| 故城县| 黎平县| 上高县| 申扎县| 当涂县| 临桂县| 张家川| 确山县| 思南县| 信丰县| 西青区| 水富县| 遵义市| 鄂伦春自治旗|