我们可以用上下文渲染器来处理一些公共的变量,来提供给所有模板使用。
第一步
在settings
目录下新建一个文件context_processor.py
,内容如下:
#-*- coding: utf-8 -*-
from django.conf import settings as local_settings
#这里是一些公共变量,所有模板都能使用
def settings(request):
return {'settings': local_settings}
def ip_addr(request):
return {'ip_addr': request.META['REMOTE_ADDR']}
第二步
把自定义的上下文加入到settings.py
中,如下:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [BASE_DIR+'\web\\templates'],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'exblog.context_processor.settings',
'exblog.context_processor.ip_addr',
],
},
},
]
第三步
直接在xx.html
中使用
ip: {{ip_addr}}
debug: {{settings.DEBUG}}