gar*_*ois 19 django django-templates django-middleware django-context
在我看来,上下文处理器可以做的一切,中间件都可以做到.那么上下文处理器的意义何在?它们只是中间件 - 精简版吗?
rad*_*tek 23
中间件充当了Django在低级别的请求/响应处理的钩子,并且很轻.钩子可用于请求,响应,视图,模板响应和异常处理.挂钩可能需要在视图处理之前修改请求,它可能需要记录有关请求的信息以进行调试,检查cookie以设置本地,等等.
了解更多关于中间件.
上下文处理器只是修改上下文.Context是传递给模板的变量的键值映射.上下文处理器将请求对象作为其参数,并返回合并到上下文中的项的字典.根据您的视图将上下文呈现给您的模板,并附加上下文处理器合并的任何其他内容.您可以将其视为全局上下文变量,可在所有模板中使用.
阅读有关Context Processors的更多信息.
两者都很容易编写并有其目的.下面的图表显示了典型django流中的中间件和上下文的位置:

Django流程图
用户请求页面
请求到达请求中间件,可以操纵或回答请求
URLC使用urls.py来管理相关的View
查看中间件,可以操作或回答请求
调用视图函数
视图可以选择通过模型访问数据
所有模型到数据库的交互都是通过管理器完成的
如果需要,视图可以使用特殊上下文
上下文传递给Template进行渲染
| 归档时间: |
|
| 查看次数: |
4470 次 |
| 最近记录: |