使用path或者re_path后,在url中都可以包含参数,而有时候想指定默认的参数,可以通过在urls.py中写两个url都指向同一个视图函数。一个带参数一个不带参数。同时,在视同函数的参数中设置默认值。
这样,当匹配到不带参数的url时,就会使用默认值。
实例代码:
urls.py
1 from django.urls import path, re_path 2 from app01 import views 3 4 urlpatterns = [ 5 path('book/',views.book,name='book'), 6 path('book/<int:num>/',views.book,name='book') 7 ]
views.py
1 from django.shortcuts import HttpResponse 2 book_list = ['青龙', '白虎', '月牙'] 3 def book(request,num=0): 4 return HttpResponse(book_list[num])
当访问:http://127.0.0.1:8000/book/时显示:青龙;
当访问:http://127.0.0.1:8000/book/1/时显示:白虎;
当访问:http://127.0.0.1:8000/book/2/时显示:月牙;