使用正则表达式re_path

设置re_path,导入re_path 

 1 from django.urls import path,re_path 

然后在URlpatterns中配置url

 1 from django.contrib import admin
 2 from django.urls import path,re_path
 3 from . import views
 4 
 5 # 配置url
 6 
 7 urlpatterns = [
 8     path('admin/', admin.site.urls),
 9     path('index/', views.index),
10     path('detail/<int:pk>/', views.detail),  # int:路径转换器
11     # URl中捕获参数 规则: 使用'<变量名>'可以捕获url中的参数  传给试图
12     # 常用的转换器:str:匹配除了'/'路径分隔符之外的所有字符串
13     #            int: 任意整数
14 
15 
16     #  path('student/<int:year>/<int:month>/', views.student)\
17 # 正则表达式re_path
18     #python正则表达式的分组命名(?<name>pattern)
19     #django 搜索url  只搜索路径部分跟参数以及请求方法(get post)无关
20     re_path(r'student/(?P<year>\d{4})/(?P<month>[0-9]|1[0-2])/',views.student)
21 ]

相应的view中的代码

 1 from django.http import HttpResponse  # http响应
 2 
 3 
 4 def index(request):
 5     return HttpResponse('Hello,this is my django project.')
 6 
 7 
 8 def detail(request, pk):  # url中捕获参数
 9 
10     return HttpResponse('学生学号为%s的成绩为良好' % pk)
11 
12 
13 def student(request, year, month):
14     return HttpResponse('%s年%s月报名的学生' % (year, month))

猜你喜欢

转载自www.cnblogs.com/X1-Zi/p/10962728.html