首页 > 其他分享 >Django使用正则表达式

Django使用正则表达式

时间:2024-06-04 12:59:41浏览次数:25  
标签:articles views 正则表达式 Django re 使用 path

本书1-7章样章及配套资源下载链接:

https://pan.baidu.com/s/1OGmhHxEMf2ZdozkUnDkAkA?pwd=nanc 

源码、PPT课件、教学视频等,可以从前言给出的下载信息下载,大家可以评估一下。

在Django框架的新版本(v2.0 +)中,URLconf模块虽然更改了配置方式,但它依然可以对老版本进行兼容,兼容的办法就是使用re_path()方法。

这个re_path()方法本质上就是以前的url()方法,只不过导入的位置变了。另外,re_path()方法与path()方法有以下两个不同点:

  • re_path()方法捕获URL地址中的参数使用的是正则表达式方式,语法是(?P<name>pattern)格式,其中的< name>是组名,pattern是要匹配的模式。
  • re_path()方法传递给视图的所有参数都是字符串类型,而不像path()方法那样可以指定转换成某种类型,因此在视图中接收参数时一定要小心。

使用正则表达式进行匹配的示例代码如下:

【代码4-5】

01  from django.urls import path, re_path
02  
03  from . import views
04  
05  urlpatterns = [
06      path('articles/2023/', views.special_case_2023),
07      re_path(
08          r'^articles/(?P<year>[0-9]{4})/$', views.year_archive
09      ),
10      re_path(
11          r'^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/$', views.month_archive
12      ),
13      re_path(
14      r'^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/(?P<slug>[\w-]+)/$',views.article_detail
15      ),
16  ]

【代码分析】

在第07~09行、第10~12行和第13~15行代码中,re_path()方法使用的就是正则表达式方式。

在第08行、第11行和第14行代码中,<year>组名严格匹配4位整数(如12345这样的整数是无法匹配的),这是由正则表达式?P<year>[0-9]{4})/$的规则所决定的。

另外,正则表达式?P<year>[0-9]{4})/$也可以简写成未命名的形式[0-9]{4},但为了避免歧义,不建议这么做。

本文节选自《Django 5企业级Web应用开发实战(视频教学版)》,获出版社和作者授权发布。

《Django 5企业级Web应用开发实战(视频教学版)》(王金柱)【摘要 书评 试读】- 京东图书 (jd.com)

标签:articles,views,正则表达式,Django,re,使用,path
From: https://blog.csdn.net/brucexia/article/details/139439780

相关文章

  • C++访问限定符private、public、protected的使用场景
    众所周知,C++中有3种访问符,分别是private、public、protected。其中private和public比较好理解。private:只能由该类中的函数、其友元函数访问,不能被任何其他访问,更不能由该类的对象在类外进行访问,类成员变量一般修饰为private,防止类使用者不受约束地直接修改数据。public:......
  • 使用HTML制作静态网站作业——我的校园运动会(HTML+CSS)
    ......
  • 8.11 矢量图层线要素单一符号使用五(标记线)
    文章目录前言标记线(Markerline)QGis设置线符号为标记线(Markerline)二次开发代码实现标记线(Markerline)总结前言本章介绍矢量图层线要素单一符号中标记线(Markerline)的使用说明:文章中的示例代码均来自开源项目qgis_cpp_api_apps标记线(Markerline)在线条特征上绘制......
  • 【YOLOv9改进[注意力]】使用YOLOv10的部分自注意力模块PSA进行改进实践(含全部代码和详
    本文将使用YOLOv10的部分自注意力模块PSA进行YOLOv9改进实践,文中含全部代码和详细修改内容。目录一YOLOv101PSA2可视化......
  • java -jar命令常见使用方法
    1、基本用法:java-jarfilename.jar这是最简单的用法,直接指定要运行的JAR文件的名称(包括.jar扩展名)。Java虚拟机(JVM)将加载并执行JAR文件中的主类(在JAR文件的META-INF/MANIFEST.MF文件中指定为主类)。2.使用nohup在后台运行:如果你希望在后台运行JAR文件,......
  • python基于flask的羽毛球场地管理系统django
    该系统分为用户的预约场地前台、管理员的系统管理后台两部分。预约场地前台功能模块:登录、注册、修改密码、选择时间、选择场地、支付费用、生成支付凭证等。系统管理后台功能模块:场地的增删查改,完善用户信息数据,统计场地信息,管理用户等。整个系统各个模块的具体功能有:预约......
  • JavaFX 常见UI控件使用
    UI控件介绍JavaFX提供了一套丰富的用户界面控件,这些控件可以用来创建现代的、交互式的图形用户界面(GUI)。JavaFX控件是JavaFX库中预定义的组件,它们封装了创建用户界面元素的复杂性,使得开发者可以快速地构建应用程序界面。以下是一些常见的JavaFX控件:控件名说明L......
  • 使用ansible自动化安装MySQL8的mysql-router+mysql-shell+mysql架构InnoDB ReplicaSet
    【说明】当前数据库MySQLCommunityServer8.4.0LTS版本已经发行,使用InnoDBReplicaSet架构自动化搭建 【自动化安装】使用ansible安装mysql-router+mysql-shell+mysqltreemysql8/mysql8/├──mysql_ms.yaml└──roles└──mysql_ms├──tasks......
  • canvas的基础使用
    目录1.了解canvas1.1canvas元素1.2兼容性1.3支持性2.使用canvas2.1获取canvas绘图上下文2.2绘制demo3.绘制矩形4.绘制path4.1绘制线条lineTo4.2绘制圆arc5.设置线条宽度、颜色、连接点样式等5.1线条宽度lineWidth5.2颜色fillStyle、strokeStyle5.3连接......
  • 小D助手最新使用说明
    1、工具介绍1.1、应用场景重复性鼠标键盘操作少儿编程1.2、界面介绍1.3、脚本操作介绍新增脚本后,选择脚本后,鼠标右键出来一个菜单,有如下几种操作2、脚本操作2.1、选择区域2.1.1、简介选择区域操作是全局的,一般在脚本最上面使用,选择区域后,该脚本的所有鼠标操作都是......