Python 为什么是;django.core.context“u processors.request”;默认情况下未启用?
我正在用一个新项目解决获取请求obj的问题,并在django的普通安装中实现了“django.core.context_processors.request”的注释 正如标题所示,为什么默认情况下会关闭这个看似有用的上下文处理器Python 为什么是;django.core.context“u processors.request”;默认情况下未启用?,python,django,django-1.6,Python,Django,Django 1.6,我正在用一个新项目解决获取请求obj的问题,并在django的普通安装中实现了“django.core.context_processors.request”的注释 正如标题所示,为什么默认情况下会关闭这个看似有用的上下文处理器 这是性能问题吗 这是安全问题吗 这是多余的吗 一些温和的搜索并没有为我找到任何东西,但我想我应该在这里问一下。这是一个好问题。文档中说注意,默认情况下该处理器未启用;您必须激活它。但没有解释 我之所以接受它,是因为django强烈希望将视图逻辑与模板分离 请求对象是
- 这是性能问题吗
- 这是安全问题吗
- 这是多余的吗
一些温和的搜索并没有为我找到任何东西,但我想我应该在这里问一下。这是一个好问题。文档中说
注意,默认情况下该处理器未启用;您必须激活它。
但没有解释
我之所以接受它,是因为django强烈希望将视图逻辑与模板分离
请求对象是构建视图逻辑所依据的所有数据的网关(给定浏览器发送给我们的内容,do X,Y,Z)-因此,在模板中允许它类似于给模板大量的控制,在正常情况下,这些控制应该放在视图中。其思想是用细节填充模板上下文,而不是全部
删除它们只是更多的鼓励,即“大多数事情都应该在视图中完成”。常见的django.contrib
应用程序大多不依赖它,如果默认情况下不需要它的话
当然,这进一步证明了除了特殊用例之外,模板中不需要请求对象
无论如何,这是我的看法。这很有道理。相比之下,其他核心上下文处理器似乎更具体/无害。