gpt4 book ai didi

django - django 中的上下文处理器与中间件

转载 作者:行者123 更新时间:2023-12-03 12:06:40 25 4
gpt4 key购买 nike

在我看来,上下文处理器可以做的所有事情,中间件都可以做。那么上下文处理器的意义何在?它们只是中间件精简版吗?

最佳答案

中间件在底层充当 Django 请求/响应处理的钩子(Hook),它很轻。这些钩子(Hook)可用于请求、响应、 View 、模板响应和异常处理。钩子(Hook)可能需要在 View 处理请求之前修改请求,它可能需要记录有关请求的信息以进行调试,检查 cookie 以设置本地,等等。

阅读更多 Middleware .

上下文处理器只是修改上下文。上下文是一个键值映射,变量传递给模板。上下文处理器将请求对象作为其参数,并返回合并到上下文中的项目字典。上下文会根据您的 View 呈现到您的模板,并附加您的上下文处理器合并的任何其他内容。您可以将其视为全局上下文变量,在您的所有模板中都可用。

阅读更多 Context Processors .

两者都相当容易编写并且有其目的。这是一个图表,显示了中间件和上下文在典型 django 流程中的位置:

enter image description here

Django 流程图

  • 用户请求页面
  • 请求到达请求中间件,它可以操纵或回答请求
  • URL 使用 urls.py
  • 确定相关 View
  • 调用 View 中间件,可以操纵或回答请求
  • 调用 View 函数
  • View 可以选择通过模型访问数据
  • 所有模型到数据库的交互都通过管理器
  • 完成
  • 如果需要, View 可以使用特殊的上下文
  • 上下文被传递给用于渲染的模板
  • 关于django - django 中的上下文处理器与中间件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10004962/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com