Cam*_*hez 42 django django-templates django-context
我是一个django初学者,所以我试图理解上下文和上下文处理器的概念.
我会很反应你的回应.提前致谢!
Sid*_*Sid 69
当您使用Django模板时,它会被编译一次(并且只编译一次)并存储以供将来使用,作为优化.模板可以在双花括号中包含变量名,例如{{myvar1}},{{myvar2}}.
Context是一个字典,其变量名称为"key",其值为"value".因此,如果上述模板的上下文如下所示:{myvar1:101,myvar2:102},当您将此上下文传递给模板呈现方法时,{{myvar1}}将被替换为101而{{myvar2}}将替换为102在你的模板中.这是一个简单的示例,但实际上Context对象是呈现模板的"Context".
至于ContextProcessor,这是一个稍微高级的概念.您可以在settings.py文件中列出一些上下文处理器,它们接收HttpRequest对象并返回一个字典(类似于上面的Context对象).上下文处理器返回的字典(上下文)被合并到Django由您(用户)传入的上下文中.
上下文处理器的用例是当您总是希望在模板中插入某些变量时(例如,用户的位置可能是候选者).您可以简单地为其编写上下文处理器并将其添加到settings.py中的TEMPLATE_CONTEXT_PROCESSORS设置,而不是编写代码以在每个视图中插入代码.
希望这是有道理的.谢谢你上课!
-sid
官方文档中对此Context进行了很好的描述。简而言之:
在日常使用中,大多数是间接使用,因为辅助函数会Context为您构建
参见 1.:只有使用低级 api时才需要它
不,上下文处理器是一个函数,它接受请求并返回变量字典,然后这些变量在使用 呈现的所有模板中可用RequestContext,例如:
def get_stuff_from_session(request):
return {'stuff': request.session['stuff']}
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
31188 次 |
| 最近记录: |