Django(9)url指定默认参数
前言
当我们访问网页的时候,后台返回列表中有n条数据,此时我们会使用分页,比如一页只展示10条,但是我们访问第一页的时候大多数情况下,都会给url一个默认值,访问的时候直接展示第一页数据
案例
我们的需求:在访问127.0.0.1/books/
直接展示第一页数据,在访问127.0.0.1/books/page/2/
就展示第二页数据。说完需求,我们开始实现代码
- 我们先在项目中创建一个
books
app,然后在books中创建一个urls.py
文件,在文件中写入以下代码
urlpatterns = [
path('', views.page),
path('page/<int:page>/', views.page)
]
- 然后在
books.views.py
视图中写入视图函数page
def page(request, page=0):
books_list = [
'java大全',
'python大全',
'c语言程序设计',
'JavaScript大全'
]
return HttpResponse(books_list[page])
- 最后在项目中的根
urls.py
文件中写入以下代码
urlpatterns = [
path('books/', include('books.urls')),
]
从以上代码我们可以看到当我们访问127.0.0.1/books/
时会匹配这条路径path('', views.page)
,路径会去执行视图函数page
,由于我们没有在路径中传入参数那么默认值就是0,浏览器就会返回java大全
当我们输入127.0.0.1/books/page/2/
时,django会匹配path('page/<int:page>/', views.page)
,然后还是去执行视图函数page
,由于这次我们传入了参数page=2
,所以这次我们就会返回book_list[2]
这本书,也就是c语言程序设计