使用path或者是re_path函数后,在route中都可以包含参数,而有时候想指定默认的参数,这个时候可以通过以下方式来完成,实例代码如下:
1.views.py文件中视图函数
from django.http import HttpResponse
book_list = [
'三国演义',
'水浒传',
'西游记',
'红楼梦'
]
def books(request,page = 0):
return HttpResponse(book_list[page])
2.urls.py文件中url与视图函数之间的映射
在没有传递参数的时候,匹配的是第一个url。这个时候就会执行view.page这个视图函数,而在page函数中,又有page=0这个默认参数,因此这个时候就可以不用传递参数。而如果访问books/2的时候,因为在传递参数的时候传递了page=2,所以就会匹配到第二个url,这个时候就会执行views.page,然后把传递进来的参数传给page函数中的num.
from django.urls import path
from . import views
urlpatterns = [
path('',views.books,name = 'books'),
path('books/<int:page>/',views.books,name = 'books'),
]