Urlpatterns和Django调试工具栏

时间:2017-04-09 14:20:02

标签: django

Django 1.11

我正在读“Django的两个勺子”。 即关于多个设置文件和多个需求文件。

因此,建议将base.py,local.py和production.py。

分开

对于base.py:

INSTALLED_APPS += ("debug_toolbar", )

让我感到困扰的是Django Debug Toolbar还需要添加一些urls.py:

from django.conf import settings
from django.conf.urls import include, url

if settings.DEBUG:
    import debug_toolbar
    urlpatterns = [
        url(r'^__debug__/', include(debug_toolbar.urls)),
    ] + urlpatterns

http://django-debug-toolbar.readthedocs.io/en/stable/installation.html#urlconf

那就是我们应该接受这种混合的调试和生产概念,或者将它们分成多个文件。

我调查了这个问题。例如,这个链接: Django: Multiple url patterns starting at the root spread across files

但我仍然有点怀疑。

你能给我一个建议吗:在urlpatterns中如何将这个Django Debut工具栏与生产分开是最好的做法。

1 个答案:

答案 0 :(得分:0)

此方法没有任何问题,因为您只有一个URL conf文件将存在于项目根目录中。因此,项目的if settings.DEBUG:文件中的urls.py部分对我来说很好。

但是,如果您想要完全分隔localproduction网址,那么您可以这样做:

  1. urls创建一个python模块(就像您对设置所做的那样)
  2. 在该目录中,创建base_urls.pylocal_urls.pyproduction_urls.py
  3. base_urls内,你应该把"全球"本地和生产都可以使用的网址。在local_urls内放置任何其他本地网址(如django-debug-toolbar)。最后,在你的生产中......呃生产网址。当然,local_urls.pyproduction_urls.py文件的顶部应该有from .base_urls import *
  4. 之后,您应该将settings/local.py文件中的ROOT_URL_CONF设置更改为"project.urls.local_urls",并在settings/production.py文件中更改{再次} ROOT_URL_CONF设置为"project.urls.production_urls"
  5. 现在,每个环境都有单独的urls个文件。