22.URL映射时指定默认参数

使用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'),
]
发布了76 篇原创文章 · 获赞 2 · 访问量 2759

猜你喜欢

转载自blog.csdn.net/zjy123078_zjy/article/details/103980928