捕获url参数
进行url匹配时,把所需要的捕获的部分设置成一个正则表达式组,这样django框架就会自动把匹配成功后相应组的内容作为参数传递给视图函数。
- 位置参数
位置参数,参数名可以随意指定
2. 关键字参数:在位置参数的基础上给正则表达式组命名即可。
?P<组名> 关键字参数,视图中参数名必须和正则表达式组名一致.
例如有下图个项目,项目名字为test3,有个应用名称为booktest,
在booktest的应用的views.py中有视图函数
from django.shortcuts import render from django.http import HttpResponse # Create your views here. def index(request): """首页""" return render(request, 'booktest/index.html') def show_arg(reques, num): return HttpResponse("url参数:" + str(num))
然后进行配置项目的url,(在test3下面的urls里面进行配置)
from django.contrib import admin from django.urls import path, include, re_path urlpatterns = [ path('admin/', admin.site.urls), re_path(r'^',include('booktest.urls')) ]
进行配置应用的url (在booktest的应用下面创建urls.py进行配置)
位置参数
from django.urls import re_path from booktest import views urlpatterns = [ re_path(r'^index$', views.index), # 位置参数 re_path(r'^show_arg(\d+)$',views.show_arg) ]
然后运行程序 ,在视图函数中进行捕获输出到网页,可以看到捕获到参数成功
关键字参数
关键字参数,视图中参数名必须和正则表达式组名一致.
from django.urls import re_path from booktest import views urlpatterns = [ re_path(r'^index$', views.index), # 关键字参数 re_path(r'^show_arg(?P<num>\d+)$', views.show_arg) ]
运行程序,可以看到也可以捕获到参数