Django 带有 list of built-in middleware ,但是如果想要使用所有(或大部分)它们,他必须通过大量文档才能在 settings.py 文件中获得正确的排序。
是否有所有内置 Django 1.1 中间件类的最佳默认顺序?即,要复制“n”粘贴到 settings.py 中的内容:
MIDDLEWARE_CLASSES = (
# perfect order here please ;-)
)
替代答案:是否有多种可能的排序方式,有什么区别?
顺便说一句:顺序很重要,但我只知道一些默认依赖项,例如 AuthenticationMiddleware 之前的 SessionMiddleware。
最佳答案
他们确实有一个 default list对于核心 Django 中间件:
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
)
您创建或从第三方获得的任何其他内容都可以添加到上述元组的末尾。 Django 书中还提到,在 View 请求中,订单来自
CommonMiddleware
至 AuthenticationMiddleware
最后是你的观点。在返回响应中,顺序与 AuthenticationMiddleware
颠倒至 CommonMiddleware
.这是doc为了它。回复评论:
在搜索了 Django 门票后,这似乎是 Django 开发社区的一个已知问题,我认为还没有最终答案。这是ticket其中包含讨论以及雅各布关闭它的部分。您可能想尝试将该问题作为 Django 票再次提交以获得官方开发人员响应。
关于django - Django 内置中间件的默认列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1820267/