include 函数

include的三种调用方式:
在使用实例命名空间之前首先要指定应用命名空间
没有指定应用命名空间直接使用实例命名空间报错
1. include(module,namespace=None):
module:子url的模块字符串
namespace:实例命名空间。这个地方需要注意一点。如果指定实例命名空间,那 么前提必须要先指定应用命名空间。也就是在子urls.py中添加app_name变量。
代码实例:
url.py文件:
from django.urls import path,include
urlpatterns = [
path(’’,include(‘book.urls’,namespace=‘book’))
]

book中的urls.py文件:
from django.urls import path
from . import views
应用命名空间:
app_name = ‘book’
urlpatterns = [
path (’’,views.book),
path (‘list/’,views.book_list),
path (‘zhong/’,views.zhong_id),
path (‘author/<author_id>’,views.author),
]
book中的view.py文件:
from django.http import HttpResponse

def book(request):
return HttpResponse(“图书首页”)

def book_list(request):
return HttpResponse(“图书列表”)

def zhong_id(request):
test = request.GET[‘id’]
return HttpResponse(“图书的种类编号是:%s”%test)

def author(request,author_id):
test = “图书作者的ID是:%s”% author_id
return HttpResponse(test)

2. include((pattern_list, app_namespace), namespace=None):
include函数的第一个参数既可以为一个字符串,也可以为一个元组,如果是元组,那么元组的第一个参数是子urls.py模块的字符串,元组的第二个参数是应用命名空间。也就是说,应用命名空间
代码实例:
urls.py文件:
from django.urls import path,include
urlpatterns = [
path(’’,include((‘book.urls’,‘book’),namespace=‘book’))
]

3. include(pattern_list):
pattern_list是一个列表。这个列表中装的是path或者re_path函数

urls.py文件:
from django.urls import path,include
from movie import view

urlpatterns = [
path(’’,include((‘book.urls’,‘book’),namespace=‘book’)),
path(‘movie/’,include([
path(’’,view.movie),
path(‘list’,view.movie_list),
]))
]

movie中view.py文件代码:
from django.http import HttpResponse

def movie(request):
return HttpResponse(“电影首页”)

def movie_list(request):
return HttpResponse(“电影列表”)

猜你喜欢

转载自blog.csdn.net/jiating167168/article/details/89185574