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中遍历文件的3个方法
Sep 02 Python
python采集百度百科的方法
Jun 05 Python
Python简单实现TCP包发送十六进制数据的方法
Apr 16 Python
python中模块的__all__属性详解
Oct 26 Python
Python cookbook(数据结构与算法)从任意长度的可迭代对象中分解元素操作示例
Feb 13 Python
Python3.5面向对象编程图文与实例详解
Apr 24 Python
Pyqt QImage 与 np array 转换方法
Jun 27 Python
python在新的图片窗口显示图片(图像)的方法
Jul 11 Python
利用python实现周期财务统计可视化
Aug 25 Python
Matplotlib绘制雷达图和三维图的示例代码
Jan 07 Python
Python实现对adb命令封装
Mar 06 Python
python线程优先级队列知识点总结
Feb 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
php生成excel列序号代码实例
2013/12/24 PHP
生成随机字符串和验证码的类的PHP实例
2013/12/24 PHP
ThinkPHP入库出现两次反斜线转义及数据库类转义的解决方法
2014/11/04 PHP
php操作xml入门之xml标签的属性分析
2015/01/23 PHP
php数组生成html下拉列表的方法
2015/07/20 PHP
基于CI框架的微信网页授权库示例
2016/11/25 PHP
详解PHP素材图片上传、下载功能
2019/04/12 PHP
jquery1.4 教程二 ajax方法的改进
2010/02/25 Javascript
Jquery ajaxStart()与ajaxStop()方法(实例讲解)
2013/12/18 Javascript
用javascript对一个json数组深度赋值示例
2014/07/27 Javascript
vue-router命名路由和编程式路由传参讲解
2019/01/19 Javascript
jquery图片预览插件实现方法详解
2019/07/18 jQuery
浅谈vue项目,访问路径#号的问题
2020/08/14 Javascript
微信小程序实现底部弹出模态框
2020/11/18 Javascript
[05:08]第一届“网鱼杯”DOTA2比赛精彩集锦
2014/09/05 DOTA
python Django连接MySQL数据库做增删改查
2013/11/07 Python
离线安装Pyecharts的步骤以及依赖包流程
2020/04/23 Python
python+ffmpeg视频并发直播压力测试
2018/03/06 Python
Django使用Celery异步任务队列的使用
2018/03/13 Python
Python实现端口检测的方法
2018/07/24 Python
实时获取Python的print输出流方法
2019/01/07 Python
【python】matplotlib动态显示详解
2019/04/11 Python
世界上最值得信赖的多日游在线市场:TourRadar
2018/07/20 全球购物
委托公证书范本
2014/04/03 职场文书
教师师德演讲稿
2014/05/06 职场文书
感情真挚的毕业生求职信
2014/07/19 职场文书
2014党员学习兰辉先进事迹思想汇报
2014/09/17 职场文书
庆祝教师节标语
2014/10/09 职场文书
2015年新农合工作总结
2015/03/30 职场文书
2015年度村委会工作总结
2015/04/29 职场文书
大学开学典礼新闻稿
2015/07/17 职场文书
配置nginx 重定向到系统维护页面
2021/06/08 Servers
python中使用 unittest.TestCase单元测试的用例详解
2021/08/30 Python
Python实现制作销售数据可视化看板详解
2021/11/27 Python
springboot中的pom文件 project报错问题
2022/01/18 Java/Android
Django框架之路由用法
2022/06/10 Python