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实现查询苹果手机维修进度
Mar 16 Python
Python文件与文件夹常见基本操作总结
Sep 19 Python
python-opencv在有噪音的情况下提取图像的轮廓实例
Aug 30 Python
Python处理CSV与List的转换方法
Apr 19 Python
Django restframework 源码分析之认证详解
Feb 22 Python
python requests库爬取豆瓣电视剧数据并保存到本地详解
Aug 10 Python
python Manager 之dict KeyError问题的解决
Dec 21 Python
Python timeit模块的使用实践
Jan 13 Python
python读取文件指定行内容实例讲解
Mar 02 Python
python字典和json.dumps()的遇到的坑分析
Mar 11 Python
Python性能分析工具py-spy原理用法解析
Jul 27 Python
编写python代码实现简单抽奖器
Oct 20 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面试题附答案
2009/01/07 PHP
Yii2框架中一些折磨人的坑
2019/12/15 PHP
js类的静态属性和实例属性的理解
2009/10/01 Javascript
基于jQuery的日期选择控件
2009/10/27 Javascript
js事件监听机制(事件捕获)总结
2014/08/08 Javascript
js简单工厂模式用法实例
2015/06/30 Javascript
js实现简单的验证码
2015/12/25 Javascript
jquery使用Cookie和JSON记录用户最近浏览历史
2016/04/19 Javascript
Vue form 表单提交+ajax异步请求+分页效果
2017/04/22 Javascript
Javascript之图片的延迟加载的实例详解
2017/07/24 Javascript
Angularjs单选框相关的示例代码
2017/08/17 Javascript
javascript trie前缀树的示例
2018/01/29 Javascript
浅谈vue中改elementUI默认样式引发的static与assets的区别
2018/02/03 Javascript
微信小程序自定义组件传值 页面和组件相互传数据操作示例
2019/05/05 Javascript
node删除、复制文件或文件夹示例代码
2019/08/13 Javascript
Python多进程同步简单实现代码
2016/04/27 Python
分析Python中解析构建数据知识
2018/01/20 Python
python自制包并用pip免提交到pypi仅安装到本机【推荐】
2019/06/03 Python
解决python flask中config配置管理的问题
2019/07/26 Python
详解python中的数据类型和控制流
2019/08/08 Python
Python Django 添加首页尾页上一页下一页代码实例
2019/08/21 Python
Python udp网络程序实现发送、接收数据功能示例
2019/12/09 Python
Django的CVB实例详解
2020/02/10 Python
keras 简单 lstm实例(基于one-hot编码)
2020/07/02 Python
python 利用panda 实现列联表(交叉表)
2021/02/06 Python
CSS3样式linear-gradient的使用实例
2017/01/16 HTML / CSS
美国时尚女装在线:Missguided
2016/12/03 全球购物
工作疏忽检讨书
2014/01/25 职场文书
幼儿园运动会加油词
2014/02/14 职场文书
学校课外活动总结
2014/05/08 职场文书
幼儿园安全责任书范本
2014/07/24 职场文书
敲诈同学钱财检讨书范文
2014/11/18 职场文书
python3中apply函数和lambda函数的使用详解
2022/02/28 Python
宝塔更新Python及Flask项目的部署
2022/04/11 Python
Spring Cloud OpenFeign模版化客户端
2022/06/25 Java/Android
python 镜像环境搭建总结
2022/09/23 Python