django中的urlpatterns(Django web框架使用url path name详解)
django中的urlpatterns
Django web框架使用url path name详解quicktool/view.py文件修改视图函数index(),渲染一个home.html模板
|
from django.shortcuts import render def index(request): return render(request, 'home.html' ) |
quicktool(应用app)下创建一个templates文件夹(模板),在templates下创建一个home.html
|
<!doctype html> <html> <head> <title>学习django< / title> < / head> <body> <a href = "/add2/4/5/" rel = "external nofollow" rel = "external nofollow" >计算 4 + 5 < / a> < / body> < / html> |
mytestsite/urls.py文件将视图函数index()对应的网址取名name为home(只要这个名字不变,网址变了也能通过名字获取到)
|
urlpatterns = [ path( 'admin/' , admin.site.urls), path(' ', quicktool_views.index, name=' home'), # 新增name值 path( 'add/' , quicktool_views.add, name = 'add' ), # 新增 path( 'add2/<int:a>/<int:b>/' , quicktool_views.add2, name = 'add2' ), # 新增 ] |
运行开发服务器,访问http://127.0.0.1:8000/,可以看到
点击标签a会执行脚本进行计算,但是home.html中代码a标签的url是"写死"的,我们可以通过url的name传参,home.html增加以下代码
|
#不带参数的: #{% url 'name' %} #带参数的:参数可以是变量名 #{% url 'name' 参数 %} <a href = "/add2/4/5/" rel = "external nofollow" rel = "external nofollow" >计算 4 + 5 < / a> <a href = "{% url 'add2' 70 80 %}" rel = "external nofollow" >计算 70 + 80 < / a> # 新增 |
运行开发服务器,访问http://127.0.0.1:8000/,可以看到
点击第一个a标签跳转请求的url为http://127.0.0.1:8000/add2/4/5/
点击第二个a标签跳转请求的url为http://127.0.0.1:8000/add2/70/80/
第二个a标签的写法是根据url name 值传参进行跳转,即根据mytestsite/urls.py文件的url path()的属性值name匹配,再传相应的参数值,进行"不写死"请求。
在url path()的属性值name不修改的前提下,修改url path()的第一个路径参数,那么a标签获取的网址也会动态相应变化。
比如
|
path( 'add2/<int:a>/<int:b>/' , quicktool_views.add2, name = 'add2' ), |
改成
|
path( 'add2/<int:a>/<int:b>/' , quicktool_views.add2, name = 'add2' ), |
除此,还需要写一个跳转到新地址的函数,django并不会自动更新跳转地址
例如旧的地址收藏夹为/add2/4/5/,访问时就会自动跳转到新的/new_add2/4/5/
具体操作是,在quicktool/view.py文件写一个跳转函数
|
from django.shortcuts import render from django.http import httpresponseredirect def old_add2_redirect(request, a, b): return httpresponseredirect( reverse( 'add2' , args = (a, b)) ) |
mytestsite/urls.py文件新增url
|
path( 'new_add2/<int:a>/<int:b>/' , quicktool_views.add2, name = 'add2' ), # 新地址 path( 'add2/<int:a>/<int:b>/' , quicktool_views.old_add2_redirect), # 旧地址 |
访问http://127.0.0.1:8000/,刷新后,可以看到
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持开心学习网。
原文链接:https://segmentfault.com/a/1190000019018238
- 支付宝接口中notify_url 与 return_url 的区别
- 通过接口访问mysql数据库(使用mysql记录从url返回的http GET请求数据操作)
- dedecms获取子目录(详解dedecms利用[field:arcurl/]无法获取文章路径的解决方法)
- python爬虫request方法介绍(详解Python3网络爬虫二:利用urllib.urlopen向有道翻译发送数据获得翻译结果)
- nginx怎么设置域名访问网页(Nginx服务器如何设置url链接)
- canvas怎么获取内容(详解canvas.toDataURL报错的解决方案全都在这了)
- vueassets文件路径(vue如何根据url下载非同源文件)
- 获取当前URL的controller、action
- Server.UrlEncode与HttpUtility.UrlEncode的区别
- django中的urlpatterns(Django web框架使用url path name详解)
- dedecms标签调用(dedecms获取文档当前栏目所在目录链接URL)
- phpcurl请求能在日志里记录吗(php使用curl模拟多线程实现批处理功能示例)
- django url配置失效(解决Django生产环境无法加载静态文件问题的解决)
- htaccess重定向详解设置(htaccess 将所有请求重定向到某个URL地址的规则)
- .NET中获取URL问号后面的字符串
- 通过js获取Url的参数值
- 谷雨前,吃牛羊肉别忘了吃河鲜,除湿还清热,加紫苏一炒特解馋(吃牛羊肉别忘了吃河鲜)
- 紫苏牛肉锅里滚一滚,香的鼻子都要掉了(紫苏牛肉锅里滚一滚)
- 每天都吃水果的好处(每天吃水果的好处与功效)
- 苹果15价格(苹果15价格512g官网)
- 春节放假几天(春节放假几天2023法定几天)
- 今天 3月13日,31年前,一个英雄少年感动了中国(今天3月13日31年前)
热门推荐
- canvas 中文字体(详解canvas绘制网络字体几种方法)
- pandas删除特定条件的行(pandas删除指定行详解)
- kubernetes初始化教程(如何在kubernetes中创建Pod)
- dedecms屏蔽规则(使用Dedecms中七个容易忽略的安全细节介绍)
- 前端常见的面试题
- ftp服务器的安装与配置(详解ftp环境配置解决方案vsftpd)
- docker compose的常用命令(安装docker和docker-compose实例详解)
- js打印斐波那契数列(JavaScript输出斐波那契数列的实现方法)
- div中设置图片的大小(div或img图片高度随宽度自适应的方法)
- IIS7如何限制某个IP地址访问网站