Django-带参数的路由编写(二)【用正则表达式匹配复杂路由】

news2024/10/6 18:35:46

在上一篇博文中,学习了“不用正则表达式匹配的简单带参数路由”,详情见链接:
https://blog.csdn.net/wenhao_ir/article/details/131225388

本篇博文学习用“用正则表达式匹配复杂路由”。

简单的参数路由用库django.urls中的函数path()就可以搞定。
但是如果要进行正则匹配,就要用库django.urls中的函数re_path()了。

函数re_path()中的常见正则表达式如下表示所示:
在这里插入图片描述
一个实例如下:
E:\Python_project\P_001\myshop-test\myshop\myshop\urls.py 中的代码:

from django.urls import re_path
from app1 import views

urlpatterns = [
    re_path(r'list/(?P<year>\d{4})/', views.article_list),
    re_path(r'page/(?P<page>\d+)&key=(?P<key>\w+)', views.article_page),
]

提问:为什么要在路径字符串的前面加上前缀“r”,因为如果不加前缀“r”,会把“\d”进行转义处理,但事实上这里不需要转义处理,'r’前缀告诉Python不要对反斜杠进行转义。
上面的代码中出现了三个正则表达式:
①正则表达式(?P<year>\d{4})表示匹配四位数字,year代表匹配到的字符串的名称,比如匹配到了“1987”,那么 year = “1987”。
②正则表达式(?P<page>\d+)表示匹配1位以上数字;
关于正则表达式中 + 和 * 的区别,可以查看链接:
https://blog.csdn.net/wenhao_ir/article/details/131289181
③正则表达式(?P<key>\w+)表示匹配1位以上字母、数字、下划线组合而成的字符串

E:\Python_project\P_001\myshop-test\myshop\app1\views.py 中的代码:

from django.http import HttpResponse  # 导入HttpResponse模块

# Create your views here.


def article_list(request, year):
    return HttpResponse("article_list方法,参数为year,指定4位,值为"+str(year))


def article_page(request, page, key):
    return HttpResponse("article_page方法,参数①为page,任意数字,值为"+str(page)+" 参数②key,字母数字下划线的组合,值为"+key)

运行Django应用:

CD E:\Python_project\P_001\myshop-test\myshop
E:
python manage.py runserver 127.0.0.1:8030

访问URL路径:

http://127.0.0.1:8030/list/1989/

浏览器显示如下:
在这里插入图片描述
访问URL路径:

http://127.0.0.1:8030/list/12345/

浏览器显示如下:
在这里插入图片描述
访问URL路径:

http://127.0.0.1:8030/page/1548484&key=suwenhao

浏览器显示如下:
在这里插入图片描述

本篇博文代码百度网盘下载链接:
https://pan.baidu.com/s/1wzrqjFuII20K62ZugCP8og?pwd=e9a5

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/665968.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

内涝监测系统如何助力城市防洪抗涝

近年来&#xff0c;各地内涝问题愈发严重&#xff0c;强降雨天气导致城市内涝已经屡见不鲜了&#xff0c;城市内涝不仅影响城市交通、居民生活&#xff0c;还可能对建筑物和基础设施造成损害&#xff0c;给城市运行带来重大风险。内涝治理除了要解决城市“里子”问题&#xff0…

【2023,学点儿新Java-11】基础案例练习:输出个人基础信息、输出心形 | Java中 制表符\t 和 换行符\n 的简单练习

前情回顾&#xff1a; 【2023&#xff0c;学点儿新Java-10】Java17 API文档简介&获取 |详解Java核心机制&#xff1a;JVM |详解Java内存泄漏与溢出 |Java优缺点总结 |附&#xff1a;GPT3.5-turbo问答测试【2023&#xff0c;学点儿新Java-09】Java初学者常会犯的错误总结与…

数据库SQL Server实验报告 之 SQL语言进行数据更新(6/8)

SQL语言进行数据更新 生命的本质是一场历练 实验目的及要求&#xff1a; 掌握如何使用sql语句进行插入、删除和更新操作。使用sql语句进行插入操作。使用sql语句进行删除操作。使用sql语句进行更新操作。使用各种查询条件完成指定的查询操作 实验内容及步骤&#xff1a…

计算机基础--->网络(2)【TCP、UDP、IP、ARP】

文章目录 TCP与UDP的区别TCP三次握手和四次挥手为什么要三次握手&#xff1f;第二次握手传回了ACK&#xff0c;为什么还要传回SYN&#xff1f;为什么要四次挥手&#xff1f;为什么不能将服务器发送的ACK和FIN合并起来&#xff0c;变成三次挥手&#xff1f;TCP如何保证传输的可靠…

推荐召回-Swing

概述 swing 是阿里原创的 i2i 召回算法&#xff0c;在阿里内部的多个业务场景被验证是一种非常有效的召回方法。据笔者了解&#xff0c;swing 在工业界已得到比较广泛的使用&#xff0c;抖音&#xff0c;小红书&#xff0c;B 站等推荐系统均使用了swing i2i。 1.传统 icf 算法…

MySql常见问题(长期更新)

基于mysql 8.0.3版本 一、忘记root密码1.1 、linux 系统下忘记密码1.2、Windows 系统下忘记密码1.3 Unix 和类 Unix 系统 二、账号问题2.1 远程访问账号设置 一、忘记root密码 1.1 、linux 系统下忘记密码 啥&#xff1f;你问我为什么会忘记密码&#xff1f;别问&#xff0c;…

Flutter状态管理新的实践 | 京东云技术团队

1 背景介绍 1.1 声明式ui 声明式UI其实并不是近几年的新技术&#xff0c;但是近几年声明式UI框架非常的火热。单说移动端&#xff0c;跨平台方案有&#xff1a;RN、Flutter。iOS原生有&#xff1a;SwiftUI。android原生有&#xff1a;compose。可以看到声明式UI是以后的前端发…

大数据从0到1的完美落地之sqoop优化

Sqoop的Job与优化 Job操作 job的好处&#xff1a; 1、一次创建&#xff0c;后面不需要创建&#xff0c;可重复执行job即可 2、它可以帮我们记录增量导入数据的最后记录值 3、job的元数据默认存储目录&#xff1a;$HOME/.sqoop/ 4、job的元数据也可以存储于mysql中。 复制代码…

C# 特性总结

目录 特性是什么&#xff1f; 如何使用特性&#xff1f; &#xff08;1&#xff09;.Net 框架预定义特性 &#xff08;2&#xff09;自定义特性 为什么要使用特性&#xff1f; 特性的应用 特性实现枚举展示描述信息 特性是什么&#xff1f; 特性&#xff08;Attribute&…

拉新、转化、留存,一个做不好,就可能会噶?

用户周期 对于我们各个平台来说&#xff08;CSDN也是&#xff09;&#xff0c;我们用户都会有一个生命周期&#xff1a;引入期–成长期–成熟期–休眠期–流失期。 而一般获客就在引入期&#xff0c;在这个时候我们会通过推广的手段进行拉新&#xff1b;升值期则发生在成长期…

智能制造工厂的SCADA解决方案应用

智能制造工厂是当今工业领域的一个重要趋势&#xff0c;它将传统的生产模式与现代信息技术相结合&#xff0c;实现了生产过程的智能化和自动化。 SCADA是一种监控与数据采集系统&#xff0c;广泛应用于工业自动化领域&#xff0c;它通过传感器、控制器和网络等设备&#xff0c…

基于Python机器学习算法小分子药性预测(岭回归+随机森林回归+极端森林回归+加权平均融合模型)

目录 前言总体设计系统整体结构图系统流程图 运行环境Python 环境配置工具包 模块实现1. 数据预处理2. 创建模型并编译3. 模型训练 系统测试工程源代码下载其它资料下载 前言 《麻省理工科技评论》于2020年发布了“十大突破性技术”预测&#xff0c;其中包括“AI药物分子发现”…

一文说透!华熙生物如何步步为营炼就品牌势能?

据华熙生物2022年财报&#xff0c;华熙生物2022年营收同比增长28.53%&#xff0c;净利润同比增长24%&#xff0c;成为全球最大的。同时&#xff0c;近年来也在C端也大展身手。华熙生物此前与故宫博物院合作&#xff0c;推出6 款故宫国宝色口红和2款“故宫美人面膜”。凭借精美的…

中小型企业需要官网和帮助中心吗?为何这样说?

随着互联网技术的不断发展&#xff0c;越来越多的中小型企业开始重视拥有自己的官网和帮助中心。但是&#xff0c;对于许多刚刚起步的中小型企业来说&#xff0c;官网和帮助中心的建设可能需要一定的成本和时间投入。那么&#xff0c;中小型企业是否需要官网和帮助中心呢&#…

python(11):python读取excel、csv文件

1.python读取excel文件 要读取Excel表格的指定行和列范围&#xff0c;可以使用Python中的第三方库pandas。pandas库提供了强大的数据分析和处理工具&#xff0c;包括读取和处理Excel文件的功能。以下是一个示例代码&#xff0c;演示了如何使用pandas库读取Excel表格中的指定行…

[Go]-Go语言第一课

1-1 Go语言特点 特点&#xff1a; 1. 静态类型&#xff0c;编译开源语言2. 脚本化的语法&#xff0c;支持多种编程范式&#xff08;函数式&#xff0c;面向对象&#xff09;3. 原生&#xff0c;给力的并发支持并发编程1-2 Go语言优势与劣势 Go语言的优势&#xff1a; 1.脚本化…

软考A计划-系统集成项目管理工程师-信息化知识(三)

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff…

加密市场与上一轮周期有何异同?五大因素探讨加密市场未来之路

数字资产市场在一季度表现不俗&#xff0c;但二季度的表现却出现了相反的情况。数据显示&#xff0c;BTC 在一季度累计上涨了 71.69%&#xff0c;而二季度截至目前下跌了 7.31%。这样的变化主要是由金融监管机构针对整个数字资产行业采取的监管行动造成的。虽然 BTC 今年以来仍…

uniapp中uni-popup的用法——实例讲解

uni-pop弹出层组件&#xff0c;在应用中弹出一个消息提示窗口、提示框等,可以设置弹出层的位置&#xff0c;是中间、底部、还是顶部。 如下图效果所示&#xff1a;白色区域则为弹出的pop层。 一、 创建一个自定义组件&#xff1a; 1.项目中安装下载uni-pop插件。 2.把pop内容…

2023.6.19项目部署(一)前端项目部署

文章目录 项目部署&#xff08;一&#xff09;前端项目一、安装宝塔面板1、安装宝塔面板2、放行端口3、安装相关软件4、添加站点 二、项目打包1、Springboot打包2、vue项目打包 三、前端项目部署1、安装nginx2、修改配置文件 项目部署&#xff08;一&#xff09;前端项目 将开…