在项目变大以后,经常不会把所有的url匹配规则都放在项目的urls.py文件中,而是每个app都有自己的urls.py文件,在这个文件中存储的都是当前这个app的所有url匹配规则。然后再统一注册到项目的urls.py文件中。include函数有多种用法,这里讲下两种常用的用法。
1.include(pattern,namespace=None):直接把其他app的urls包含进来。示例代码如下:
from django.contrib import admin
from django.urls import path,include
urlpatterns = [
path('admin/', admin.site.urls),
path('book/',include("book.urls"))
]
当然也可以传递namespace参数来指定一个实例命名空间,但是在使用实例命名空间之前,必须先指定一个应用命名空间。示例代码如下:
# 主urls.py文件:
from django.urls import path,include
urlpatterns = [
path('movie/',include('movie.urls',namespace='movie'))
]
然后在movie/urls.py中指定应用命名空间。实例代码如下:
from django.urls import path
from . import views
应用命名空间
app_name = 'movie'
urlpatterns = [
path('',views.movie,name='index'),
path('list/',views.movie_list,name='list'),
]