命名空间
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)),
]
网友评论