在Django中URL正则表达式匹配的方法


Posted in Python onDecember 20, 2018

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

在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),举个栗子,要写成'^articles', 而不是' ^/articles'。

在之前的'r'字母告诉Pyhton解释器这个String是一个“raw”— 原始字符串

注:

Python中原始字符串(raw)的产生正是由于有正则表达式的存在。原因是ASCII 字符和正则表达式特殊字符间所产生的冲突。比如,特殊符号“\b”在 ASCII 字符中代表退格键,但同时“\b”也是一个正则表达式的特殊符号,代表“匹配一个单词边界”。

为了让RE 编译器把两个字符“\b”当成你想要表达的字符串,而不是一个退格键,你需要用另一个反斜线对它进行转义,即可以这样写:“\b”。

但这样做会把问题复杂化,特别是当你的正则表达式字符串里有很多特殊字符时,就更容易令人困惑了。在第六章,我们曾介绍过原始字符串,它经常被用于简化正则表达式的复杂程度。事实上,很多Python 程序员在定义正则表达式时都只使用原始字符串。

以上这篇在Django中URL正则表达式匹配的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现数据图表
Jul 29 Python
Python爬虫爬取新浪微博内容示例【基于代理IP】
Aug 03 Python
PyQt打开保存对话框的方法和使用详解
Feb 27 Python
django删除表重建的实现方法
Aug 28 Python
Python使用Slider组件实现调整曲线参数功能示例
Sep 06 Python
python接口自动化如何封装获取常量的类
Dec 24 Python
Python如何使用paramiko模块连接linux
Mar 18 Python
python Gabor滤波器讲解
Oct 26 Python
Python Socket多线程并发原理及实现
Dec 11 Python
Python OpenCV快速入门教程
Apr 17 Python
python 提取html文本的方法
May 20 Python
python 如何做一个识别率百分百的OCR
May 29 Python
python采集微信公众号文章
Dec 20 #Python
Linux下Pycharm、Anaconda环境配置及使用踩坑
Dec 19 #Python
python爬虫之urllib,伪装,超时设置,异常处理的方法
Dec 19 #Python
python3实现网络爬虫之BeautifulSoup使用详解
Dec 19 #Python
python爬虫超时的处理的实例
Dec 19 #Python
pycharm中使用anaconda部署python环境的方法步骤
Dec 19 #Python
Django框架模板注入操作示例【变量传递到模板】
Dec 19 #Python
You might like
Apache2中实现多网站域名绑定的实现方法
2011/06/01 PHP
php empty() 检查一个变量是否为空
2011/11/10 PHP
学习php设计模式 php实现工厂模式(factory)
2015/12/07 PHP
深入解析WordPress中加载模板的get_template_part函数
2016/01/11 PHP
php微信开发之自定义菜单实现
2016/11/18 PHP
PHP+Ajax简单get验证操作示例
2019/03/02 PHP
extjs 3.31 TreeGrid实现静态页面加载json到TreeGrid里面
2013/04/02 Javascript
Javascript前端UI框架Kit使用指南之kitjs的对话框组件
2014/11/28 Javascript
node.js中的buffer.slice方法使用说明
2014/12/10 Javascript
JavaScript如何动态创建table表格
2020/08/02 Javascript
js实现正则匹配中文标点符号的方法
2015/12/23 Javascript
JavaScript模拟鼠标右键菜单效果
2020/12/08 Javascript
JavaScript动态添加事件之事件委托
2016/07/12 Javascript
vue.js表格组件开发的实例详解
2016/10/12 Javascript
解决Vue2.0自带浏览器里无法打开的原因(兼容处理)
2017/07/28 Javascript
node.js实现的装饰者模式示例
2017/09/06 Javascript
微信小程序实现添加手机联系人功能示例
2017/11/30 Javascript
基于vue中解决v-for使用报红并出现警告的问题
2018/03/03 Javascript
vue使用中的内存泄漏【推荐】
2018/07/10 Javascript
用vscode开发vue应用的方法步骤
2019/05/06 Javascript
记录一次websocket封装的过程
2020/11/23 Javascript
[55:16]Mski vs VGJ.S Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
[42:23]完美世界DOTA2联赛PWL S3 Forest vs Rebirth 第二场 12.10
2020/12/13 DOTA
使用Python中的tkinter模块作图的方法
2017/02/07 Python
python中正则表达式 re.findall 用法
2018/10/23 Python
python threading和multiprocessing模块基本用法实例分析
2019/07/25 Python
python统计函数库scipy.stats的用法解析
2020/02/25 Python
Python3 mmap内存映射文件示例解析
2020/03/23 Python
Spark处理数据排序问题如何避免OOM
2020/05/21 Python
python如何建立全零数组
2020/07/19 Python
寄语十八大感言
2014/02/07 职场文书
2015新学期开学寄语
2015/02/26 职场文书
2016年领导干部正风肃纪心得体会
2015/10/09 职场文书
pytorch查看网络参数显存占用量等操作
2021/05/12 Python
redis requires ruby version2.2.2的解决方案
2021/07/15 Redis
星际争霸:毕姥爷vs解冻03
2022/04/01 星际争霸