Django2.1 URL 调度程序

2019-01-16  本文已影响26人  运维开发_西瓜甜

命名空间

URL命名空间和include的URLconf

可以用两种方式实现

第一种(个人推荐)

可以继续向 Django1.x 中那样在项目的 urls.py 中定义一个应用总的 url, 但是这里不需要使用 namespace 指定一个 应用的命名空间名称。

urls.py
from django.urls import path, include
urlpatterns = [
    path(r'admin/', admin.site.urls),
    path(r'captcha/', include('captcha.urls')),
    path(r'users/', include('users.urls')),
]

之后在应用的 usls.py 文件中使用 app_name 变量指定应用的命名空间名称。
比如这里我们创建了一个应用 users 用于管理用户,那么 users/urls.py 的文件内容如下:

users/urls.py
from django.urls import path

from users import views

# 这里知道应用的命名空间名称
app_name = 'users'

urlpatterns = [
    path(r'login/', views.MyLoginView.as_view(), name='login'),
]

第二种

直接在整项目的 urls.py 文件中定义

urls.py
from django.urls import path, include
from users import views

users_patterns = ([
    path(r'login/', views.MyLoginView.as_view(), name='login'),
], 'users')

urlpatterns = [
    path('users/', include(users_patterns)),
]
上一篇下一篇

猜你喜欢

热点阅读