与path定义的路由相比,re_path 定义的路由可以使用正则表达式匹配url。
需要注意的是:
- 如果未定义匹配结果的变量名,匹配的结果默认传入视图的第2个形参。
- 如果定义了匹配结果的变量名,匹配的结果会传给视图的同名字段,如果没有同名字段会报错。
定义个简单视图如下:
from django.http import HttpResponse
def test_1(request, re_result):
return HttpResponse("test1正则匹配值为:%s" % re_result)
def test_2(request, r=None, active_id=None):
return HttpResponse("test2正则匹配值为:%s" % active_id)
使用re_path定义个路由
from django.urls import re_path
from . import views
# 定义命名空间
app_name = "goods"
urlpatterns = [
re_path("1/(.*)", views.test_1), # 不定义匹配结果变量名
re_path("2/(?P<active_id>.*)", views.test_2), # 定义了匹配结果变量名
]
执行结果
源码等资料获取方法
各位想获取源码的朋友请点赞 + 评论 + 收藏,三连!
三连之后我会在评论区挨个私信发给你们~
文章来源地址https://www.toymoban.com/news/detail-560867.html文章来源:https://www.toymoban.com/news/detail-560867.html
到了这里,关于Django_re_path_使用正则匹配url的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!