似乎最新的Django调试工具栏模块现已更改为中间件,并且需要显式的URL设置才能正常工作。在我的Django项目中,我始终尝试根据环境组织设置,而不是if settings.DEBUG
乱扔遍整个设置文件和项目。
我的设置布局是常规的:
common.py (everything in here)
development.py (dev only things here)
production.py (prod only things here)
在Django 1.10中,有没有一种方法可以添加到development.py文件中的URL,以便远离if settings.DEBUG
。还是如果要使用新版本的调试工具栏,我们将被迫使用此方法吗?
我只是在下面找到一些反模式
if settings.DEBUG:
import debug_toolbar
urlpatterns += [
url(r'^__debug__/', include(debug_toolbar.urls)),
]
如果您不想测试settings.DEBUG
URL配置中的值,则可以使用与设置所用模式相似的模式来管理URL。
urls.py
您将拥有一个urls
具有以下结构的软件包,而不是文件:
urls
├── __init__.py
├── common.py
├── local.py
└── production.py
在不同的设置文件中,您将指定要使用这种方式的URL conf文件:
# settings/local.py
ROOT_URLCONF = 'urls.local'
# settings/production.py
ROOT_URLCONF = 'urls.production'
该urls/common.py
文件将公开一个urlpattern
成员,其中包含您将在urls/local.py
和中导入和使用的所有配置所共有的所有URL模式urls/production.py
。
例如:
# urls/common.py
urlpatterns = [
# Put all common URL patterns here
]
# urls/local.py
from .common.py import urlpatterns as common_urlpatterns
urlpatterns = common_urlpatterns + [
url(r'^__debug__/', include(debug_toolbar.urls)),
]
如果您需要我的意见,考虑到与设置相比,URL配置与环境之间的差异应该不大,因此此解决方案感觉有些过头了。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句