• Django使用正则表达式


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

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

    【代码4-5】

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

    【代码分析】

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

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

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

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

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

  • 相关阅读:
    java商城系统如何保障用户信息的安全性?
    JS高级:进程与线程
    【汇编语言01】第1章 基础知识
    Mac vsCode快捷键总结
    二叉树 BFS 力扣 Python
    蓝牙协议之GATT学习笔记
    Linux——进程和计划任务管理
    Java8新特性之stream、map和reduce
    整体二分笔记
    Spring容器启动流程
  • 原文地址:https://blog.csdn.net/brucexia/article/details/139439780