Django——上下文处理器
一、上下文处理器
在模板中想要使用的变量是从视图函数中的context这个上下文的参数中传递进来的,每个视图函数需要什么参数就传什么参数.
上下文处理器就是创建模板变量.而同时上下文处理器也是一个python函数
二、 案例
给所有页面添加一个name变量
Students/customer_context_processor.py
# -*- coding: utf-8 -*-
# @Author : summer
def my_name(request):
return {"name": "summer"}
在settings.py中,包含了当前使用的上下文处理器。他的作用是可以给每一个模板都提供相同的变量,我们把我们的上下文也加入进去
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [BASE_DIR / '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',
"Students.customer_context_processor.my_name",
],
'builtins': ['django.templatetags.static']
},
},
]
而此时,去一个并没有name参数的页面添加一个模板变量是name的即可再页面上显示这个name了。而如果视图函数已经定义了name时,则会使用视图函数的变量。