Django路由配置——path——转换器

本文详细介绍了Django中URL路由的转换器类型,如str、int、slug和path,以及如何在视图中接收对应参数。同时,也讨论了如何使用正则表达式re_path进行更复杂的匹配,例如日期格式的路径。通过实例展示了不同转换器和正则表达式的使用方式,帮助理解Django URL配置的灵活性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

path转换器类型

  1. str 匹配除了/之外的非空字符串

例: path(“v1/users/str:username”,views.py) 匹配 v1/users/zyyy

  1. int 匹配0或者任何正整数,返回一个int

例:path(“page/int:page”,views.py) 匹配 /page/100

  1. slug 匹配任意由ASCII字母或数字以及连字符和下划线组成的短标签

例:path(“detail/slug:sl”,views.py) 匹配 detail/this-is-django

  1. path 匹配非空字段,包括路径分隔符/

例:path(“v1/users/path:ph”,views.py) 匹配 /v1/goods/a/b/c

注意:
使用转换器后,要在视图函数中传入对应参数

混合使用path('<int:n>/<str:op>/<int:m>',views.py)

匹配: http://127.0.0.1:8000/任意整数/操作符/任意整数

正则匹配 re_path()
re_path(r'^(?P<x>\d{1,2})/(?P<op>\w+)/(?P<y>\d{1,2})$',views.py)

匹配: http://127.0.0.1:8000/2位整数/操作符/2位整数

例子:
re_path(r'^birthday/(?P<y>\d{4})/(?P<m>\d{1,2})/(?P<d>{1,2})$',views.py)

匹配: http://127.0.0.1:8000/birthday/四位数字/一到两位数字/一到两位数字

re_path(r'^birthday/(?P<m>\d{1,2})/(?P<d>{1,2})/(?P<y>\d{4})$',views.py)

匹配: http://127.0.0.1:8000/birthday/一到两位数字/一到两位数字/四位数字

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值