Django URL模式:好的做法?

时间:2019-02-01 17:01:21

标签: django

我想知道以下内容是否被视为“不良做法”。在Django项目中,每个应用程序都有多个urls.py文件。因此,例如,我在一个名为locations的单个应用中,可以保存以下文件:

# locations/urls/api.py
# locations/urls/general.py

这两个都包含在“主url文件”中:

# settings/urls.py
from django.urls import include, path

urlpatterns = [
    # ... snip ...
    path('api/locations', include('locations.urls.api')),
    path('locations/', include('locations.urls.general')),
    # ... snip ...
]

我考虑采用这种构造的原因是,我希望一些“位置url”位于api/...路由内,并将其他应用程序的路由合并到api/...路由中,而我想处于locations/...路线之内。

我希望我的解释清楚。让我知道您对这种结构的看法!

干杯!

1 个答案:

答案 0 :(得分:3)

您实际上不需要将它们放在单独的文件中。 include可以包含模式列表:因此您可以这样做:

api_urlpatterns = [
    path(...),
    path(...),
]
general_urlpatterns = [
    path(...),
    path(...),
]

urlpatterns = [
    # ... snip ...
    path('api/locations', include(api_urlpatterns)),
    path('locations/', include(general_urlpatterns)),
    # ... snip ...
]