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 字符串定义
Sep 25 Python
Linux上安装Python的PIL和Pillow库处理图片的实例教程
Jun 23 Python
python去掉空白行的多种实现代码
Mar 19 Python
VSCode下好用的Python插件及配置
Apr 06 Python
tensorflow 中对数组元素的操作方法
Jul 27 Python
python根据list重命名文件夹里的所有文件实例
Oct 25 Python
pandas 转换成行列表进行读取与Nan处理的方法
Oct 30 Python
Python基础之文件读取的讲解
Feb 16 Python
python实现月食效果实例代码
Jun 18 Python
python设计tcp数据包协议类的例子
Jul 23 Python
树莓派3 搭建 django 服务器的实例
Aug 29 Python
Python实现RGB与HSI颜色空间的互换方式
Nov 27 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
for循环连续求和、九九乘法表代码
2012/02/20 PHP
javascript 数组的方法集合
2008/06/05 Javascript
jquery.bgiframe.js在IE9下提示INVALID_CHARACTER_ERR错误
2013/01/11 Javascript
解析页面加载与js函数的执行 onload or ready
2013/12/12 Javascript
原生js实现类似弹窗抖动效果
2015/04/02 Javascript
JavaScript面对国际化编程时的一些建议
2015/06/24 Javascript
jqueryMobile使用示例分享
2016/01/12 Javascript
js 实现一些跨浏览器的事件方法详解及实例
2016/10/27 Javascript
Vue2递归组件实现树形菜单
2017/04/10 Javascript
解决IE7中使用jQuery动态操作name问题
2017/08/28 jQuery
JavaScript实现多叉树的递归遍历和非递归遍历算法操作示例
2018/02/08 Javascript
基于Vuex无法观察到值变化的解决方法
2018/03/01 Javascript
JavaScript实现的DOM绘制柱状图效果示例
2018/08/08 Javascript
js正则取值的结果数组调试方法
2018/10/10 Javascript
JavaScript模块管理的简单实现方式详解
2019/06/15 Javascript
寻找网站后台地址的python脚本
2014/09/01 Python
Python中IPYTHON入门实例
2015/05/11 Python
使用Python求解最大公约数的实现方法
2015/08/20 Python
python内置函数:lambda、map、filter简单介绍
2017/11/16 Python
详解Django之admin组件的使用和源码剖析
2018/05/04 Python
Python使用pyodbc访问数据库操作方法详解
2018/07/05 Python
对python字典元素的添加与修改方法详解
2018/07/06 Python
Python 实现输入任意多个数,并计算其平均值的例子
2019/07/16 Python
python爬虫刷访问量 2019 7月
2019/08/01 Python
基于python的docx模块处理word和WPS的docx格式文件方式
2020/02/13 Python
英国女鞋购物网站:Moda in Pelle
2019/02/18 全球购物
乌克兰电子和家用电器商店:Foxtrot
2019/07/23 全球购物
介绍一下Cookie和Session及他们之间的区别
2012/11/20 面试题
团队经理竞聘书
2014/03/31 职场文书
法院反腐倡廉心得体会
2014/09/09 职场文书
2015年保洁员工作总结
2015/05/04 职场文书
2015年度校学生会工作总结报告
2015/05/23 职场文书
合同审查法律意见书
2015/06/04 职场文书
spring cloud gateway中如何读取请求参数
2021/07/15 Java/Android
使用CSS设置滚动条样式
2022/01/18 HTML / CSS
PYTHON 使用 Pandas 删除某列指定值所在的行
2022/04/28 Python