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 相关文章推荐
一个基于flask的web应用诞生 记录用户账户登录状态(6)
Apr 11 Python
python回调函数中使用多线程的方法
Dec 25 Python
Python设计模式之享元模式原理与用法实例分析
Jan 11 Python
对Django 转发和重定向的实例详解
Aug 06 Python
OpenCV+Python--RGB转HSI的实现
Nov 27 Python
Django Form and ModelForm的区别与使用
Dec 06 Python
Anconda环境下Vscode安装Python的方法详解
Mar 29 Python
Python过滤掉numpy.array中非nan数据实例
Jun 08 Python
Django+RestFramework API接口及接口文档并返回json数据操作
Jul 12 Python
Pycharm plot独立窗口显示的操作
Dec 11 Python
Python机器学习之底层实现KNN
Jun 20 Python
详解Python+OpenCV绘制灰度直方图
Mar 22 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
PHP 和 MySQL 开发的 8 个技巧
2006/10/09 PHP
解决163/sohu/sina不能够收到PHP MAIL函数发出邮件的问题
2009/03/13 PHP
php反弹shell实现代码
2009/04/22 PHP
php框架CodeIgniter主从数据库配置方法分析
2018/05/25 PHP
jQuery 自定义函数写法分享
2012/03/30 Javascript
jquery动态加载select下拉框示例代码
2013/12/10 Javascript
javascript表单验证大全
2015/08/12 Javascript
JavaScript实现复制内容到粘贴板代码
2016/03/31 Javascript
JQuery的常用选择器、过滤器、方法全面介绍
2016/05/25 Javascript
通过javascript进行UTF-8编码的实现方法
2016/06/27 Javascript
JavaScript登录验证码的实现
2016/10/27 Javascript
Javascript+CSS3实现进度条效果
2016/10/28 Javascript
微信开发 JS-SDK 6.0.2 经常遇到问题总结
2016/12/08 Javascript
Vue计算属性的学习笔记
2017/03/22 Javascript
详解VUE 定义全局变量的几种实现方式
2017/06/01 Javascript
基于Bootstrap下拉框插件bootstrap-select使用方法详解
2018/08/07 Javascript
分享一款超好用的JavaScript 打包压缩工具
2020/04/26 Javascript
Django中模版的子目录与include标签的使用方法
2015/07/16 Python
Python 通配符删除文件的实例
2018/04/24 Python
python3去掉string中的标点符号方法
2019/01/22 Python
对pandas通过索引提取dataframe的行方法详解
2019/02/01 Python
英国领先的汽车轮胎和快速健康中心:Kwik Fit
2017/10/29 全球购物
戴尔新加坡官网:Dell Singapore
2020/12/13 全球购物
支教自我鉴定
2014/01/18 职场文书
培训专员岗位职责
2014/02/26 职场文书
医学生就业推荐表自我鉴定
2014/03/26 职场文书
青春励志演讲稿
2014/04/29 职场文书
村党支部群众路线教育实践活动对照检查材料
2014/09/26 职场文书
感谢信的格式
2015/01/21 职场文书
餐饮服务员岗位职责
2015/02/09 职场文书
南极大冒险观后感
2015/06/05 职场文书
教师病假条范文
2015/08/17 职场文书
Mysql 性能监控及调优
2021/04/06 MySQL
tensorflow中的数据类型dtype用法说明
2021/05/26 Python
Spring boot应用启动后首次访问很慢的解决方案
2021/06/23 Java/Android
Android基于Fresco实现圆角和圆形图片
2022/04/01 Java/Android