我是django初学者,所以我试图理解上下文和上下文处理器的概念。
非常感谢你的回复。提前致谢!
当你使用Django模板时,它会被编译一次(并且只能编译一次)并存储以供将来使用,作为优化。模板可以在双花括号中包含变量名,例如 {{ myvar1 }}和{{ myvar2 }}。
{{ myvar1 }}
{{ myvar2 }}
一个背景是变量名称为字典键和它们的值的值。因此,如果你对上面的模板看起来像背景:{myvar1: 101, myvar2: 102}当你传递这方面的模板渲染方法,{{ myvar1 }}将被替换101,并{{ myvar2 }}用102在你的模板。这是一个简单的示例,但实际上Context对象是在其中渲染模板的上下文。
{myvar1: 101, myvar2: 102}
Context
对于ContextProcessor,这是一个稍微高级的概念。你可以在settings.py文件中列出一些上下文处理器,这些上下文处理器接收一个HttpRequest对象并返回一个字典(类似于上面的Context对象)。上下文处理器返回的字典(上下文)将合并到你(用户)由Django传递的上下文中。
ContextProcessor
settings.py
HttpRequest
上下文处理器的一个用例是,当你始终要在模板中插入某些变量时(例如,用户的位置可能是候选对象)。你无需编写代码将其插入每个视图中,而只需为其编写一个上下文处理器并将其添加到中的TEMPLATE_CONTEXT_PROCESSORS设置中settings.py。
TEMPLATE_CONTEXT_PROCESSORS