Django框架教程之正则表达式URL误区详解


Posted in Python onJanuary 28, 2018

前言

利用Django开发网站,可以设计出非常优美的url规则,如果url的匹配规则(包含正则表达式)组织得比较好,view的结构就会比较清晰,比较容易维护。但这其中可能会有一些误区,下面就来给大家总结下。

问题:

我学习的视频大概是2015年录的,里面用的Django版本比较老关于正则表达式URL这一块都是用的url(“url(r'^admin/', admin.site.urls),”)方法。而我自己练习的时候是下载的最新版本,而正则表达式URL用的确实path(“path('admin/', admin.site.urls),”)方法。刚开始一对以匹配的时候都能成功,就没太在意这个细节。

直到后面正则匹配多个时(path('detail-(\d+).html', views.detail),) ,总是报错“page not found”。我检查了好几遍,明明一模一样怎么就不行尼?其实看颜色就感觉有点不太对,但又不知道是什么原因。后来查了相关版本文档之后,终于找到解决的方法了!

下面附上相关代码:

1.这个是最重要的py文件,其他的就差不多了。

Django框架教程之正则表达式URL误区详解 

2.其他相关代码:

views.py

def detail(request,nid):
 # print(nid)
 # return HttpResponse(nid)
 detail_info = USER_DICT[nid]
 return render(request,'detail.html',{'detail_info':detail_info})

index.html

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Title</title>
</head>
<body>
 <ul>
  {% for k,v in user_dict.items %}
   <li><a target="_blank" href="/detail-{{ k }}.html" rel="external nofollow" >{{ v.name }}</a></li>
  {% endfor %}
 </ul>
</body>
</html>

detail.py

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Title</title>
</head>
<body>
 <h1>详细信息</h1>
 <h6>用户名:{{ detail_info.name }}</h6>
 <h6>邮箱:{{ detail_info.email }}</h6>
</body>
</html>

另外,URL要传递多个数据时候,严格按照顺序传递的,并且函数定义必须有相应个数的参数,当然可以利用万能参数接收任意个参加

普通情况下运用的正则表达式是:url(r'^detail-(?P<nid>\d+)-(?P<uid>\d+)', views.detail),

而对应的detail函数的是这样的:def detail(request, *args, **kwargs):pass

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
Python中的Matplotlib模块入门教程
Apr 15 Python
在Apache服务器上同时运行多个Django程序的方法
Jul 22 Python
python中私有函数调用方法解密
Apr 29 Python
python编程实现归并排序
Apr 14 Python
深入理解python中的select模块
Apr 23 Python
微信跳一跳python代码实现
Jan 05 Python
python实现求解列表中元素的排列和组合问题
Mar 15 Python
解决python爬虫中有中文的url问题
May 11 Python
Python中的heapq模块源码详析
Jan 08 Python
Pytorch根据layers的name冻结训练方式
Jan 06 Python
Centos7下源码安装Python3 及shell 脚本自动安装Python3的教程
Mar 07 Python
Python turtle库的画笔控制说明
Jun 28 Python
python通过百度地图API获取某地址的经纬度详解
Jan 28 #Python
python中的随机函数小结
Jan 27 #Python
python中的随机函数random的用法示例
Jan 27 #Python
Python闭包之返回函数的函数用法示例
Jan 27 #Python
详解如何利用Cython为Python代码加速
Jan 27 #Python
详解Python 实现元胞自动机中的生命游戏(Game of life)
Jan 27 #Python
Python实现的栈(Stack)
Jan 26 #Python
You might like
YII Framework框架教程之使用YIIC快速创建YII应用详解
2016/03/15 PHP
php 微信公众平台开发模式实现多客服的实例代码
2016/11/07 PHP
PHP基于PDO扩展操作mysql数据库示例
2018/12/24 PHP
jQuery each()小议
2010/03/18 Javascript
juqery 学习之三 选择器 层级 基本
2010/11/25 Javascript
jQuery动态设置form表单的enctype值(实现代码)
2013/07/04 Javascript
基于JavaScript怎么实现让歌词滚动播放
2015/11/03 Javascript
使用vue.js制作分页组件
2016/06/27 Javascript
Ajax的概述与实现过程
2016/11/18 Javascript
js实现增加数字显示的环形进度条效果
2017/02/05 Javascript
layui表格实现代码
2017/05/20 Javascript
react-navigation 如何判断用户是否登录跳转到登录页的方法
2017/12/01 Javascript
VSCode 配置React Native开发环境的方法
2017/12/27 Javascript
用vue写一个仿简书的轮播图的示例代码
2018/03/13 Javascript
Mint-UI时间组件起始时间问题及时间插件使用
2018/08/20 Javascript
vue-cli 默认路由再子路由选中下的选中状态问题及解决代码
2018/09/06 Javascript
vue实现点击按钮切换背景颜色的示例代码
2020/06/23 Javascript
Python实现对字符串的加密解密方法示例
2017/04/29 Python
解决python3 json数据包含中文的读写问题
2018/05/10 Python
python 读取摄像头数据并保存的实例
2018/08/03 Python
Python hmac模块使用实例解析
2019/12/24 Python
python算的上脚本语言吗
2020/06/22 Python
python 实用工具状态机transitions
2020/11/21 Python
Meli Melo官网:名媛们钟爱的英国奢侈手包品牌
2017/04/17 全球购物
俄罗斯苹果优质经销商商店:iPort
2020/05/27 全球购物
英语文学专业学生的自我评价
2013/10/31 职场文书
产品工艺师的岗位职责
2013/11/15 职场文书
麦当劳辞职信范文
2014/01/18 职场文书
军训学生自我鉴定
2014/02/12 职场文书
《太阳》教学反思
2014/02/21 职场文书
大学专科求职信
2014/07/02 职场文书
学习焦裕禄精神践行三严三实心得体会
2014/10/13 职场文书
财务稽核岗位职责
2015/04/13 职场文书
小学生节水倡议书
2015/04/29 职场文书
python实现过滤敏感词
2021/05/08 Python
Python 装饰器(decorator)常用的创建方式及解析
2022/04/24 Python