Django中URL正则表达式匹配

本文介绍了Django框架如何利用正则表达式进行URL匹配。内容包括正则表达式的使用规则,如无需在URL路径前添加'/',以及在Python中使用'r'前缀创建原始字符串以避免ASCII字符和正则特殊字符冲突的例子,旨在帮助开发者更好地理解Django的URL配置机制。
摘要由CSDN通过智能技术生成

Django框架中的URL分发采用正则表达式匹配来进行,以下是正则表达式的基本规则:

正则表达式

官方演示代码:

from django.conf.urls import url

from . import views

urlpatterns = [
    url(r'^articles/2003/$', views.special_case_2003),
    url(r'^articles/([0-9]{4})/$', views.year_archive),
    url(r'^articles/([0-9]{4})/([0-9]{2})/$', views.month_archive),
    url(r'^articles/([0-9]{4})/([0-9]{2})/([0-9]+)/$', views.article_detail),
]

注意:

  • 不需要在前面加上‘/’(slash)

Django使用正则表达式进行路由需要使用re_path()函数。在urls.py文件,可以通过re_path()函数来定义路由规则。例如,可以使用"^hello/$"来匹配以hello/结尾的路径,并将其映射到对应的视图函数。如果需要在路由传递参数,可以使用正则表达式的语法来定义参数的格式,例如"^hello/(?P<yy>\[0-9\]+)/"可以匹配以hello/开头,后面跟着一个数字的路径,并将该数字作为参数传递给对应的视图函数。\[1\]\[2\] 另外,还可以使用url()函数来定义路由规则。例如,可以使用"url(r'^detail-(\d+)-(\d+).html',views.detail)"来匹配以detail-数字-数字.html结尾的路径,并将两个数字作为参数传递给对应的视图函数。\[3\] #### 引用[.reference_title] - *1* [正则表达式djangourls的用法](https://blog.csdn.net/weixin_44614406/article/details/87913286)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [django框架——路由系统(正则表达式)](https://blog.csdn.net/xmxt668/article/details/89504320)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Django基于正则表达式URL](https://blog.csdn.net/zhuanglicheng/article/details/109200796)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值