使用正则表达式re_path

Posted x1-zi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用正则表达式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(rstudent/(?P<year>\d4)/(?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))

 

以上是关于使用正则表达式re_path的主要内容,如果未能解决你的问题,请参考以下文章

Django 2.0 的路由如何实现正则表达式

path() 和 re_path() 有啥区别?

Django 路由系统(URLconf)

通过 Java 正则表达式提取 semver 版本字符串的片段

Django基于正则表达式匹配URL

asp.net 使用正则表达式验证包含打开/关闭括号片段的属性字符串