代码之家  ›  专栏  ›  技术社区  ›  Boldewyn

Django内置中间件的默认列表

  •  4
  • Boldewyn  · 技术社区  · 16 年前

    Django带有一个 list of built-in middleware ,但如果要使用所有(或大部分)文档,则必须处理大量文档,以便在settings.py文件中获得正确的排序。

    是否有一个最佳的默认顺序 全部的 内置Django 1.1中间件类?例如,要将“n”粘贴到settings.py中的内容:

    MIDDLEWARE_CLASSES = (
      # perfect order here please ;-)
    )
    

    备选答案:是否有多种可能的订单,有什么区别?

    顺便说一句:订单 是

    1 回复  |  直到 16 年前
        1
  •  10
  •   Thierry Lam    16 年前

    他们确实有一个 default list 对于核心Django中间件:

    MIDDLEWARE_CLASSES = (
        'django.middleware.common.CommonMiddleware',
        'django.contrib.sessions.middleware.SessionMiddleware',
        'django.middleware.csrf.CsrfViewMiddleware',
        'django.contrib.auth.middleware.AuthenticationMiddleware',
    )
    

    您从第三方创建或获得的任何其他元组都可以添加到上面元组的末尾。Django书还提到,在视图请求中,订单来自 CommonMiddleware 到 AuthenticationMiddleware 最后是你的观点。在返回响应中,顺序从 认证中间件 公共中间件 . 这是我的建议 doc

    针对该评论:

    在浏览了Django门票之后,这似乎是Django开发者社区的一个已知问题,我认为还没有最终的答案。这是我的建议 ticket 其中包含讨论以及Jacob结束讨论的部分。您可能希望尝试将该问题作为Django问题再次提交,以获得正式的开发人员响应。