分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 教程案例

Django框架之正则表达式URL误区

发布时间:2023-09-06 01:39责任编辑:董明明关键词:正则

问题:我学习的视频大概是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文件,其他的就差不多了。

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">{{ 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

Django框架之正则表达式URL误区

原文地址:https://www.cnblogs.com/Aliase/p/8366355.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved