Django web框架使用url path name详解


Posted in Python onApril 29, 2019

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/,可以看到

Django web框架使用url path name详解

点击标签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/,可以看到

Django web框架使用url path name详解

点击第一个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/,刷新后,可以看到

Django web框架使用url path name详解

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python黑魔法Descriptor描述符的实例解析
Jun 02 Python
python3.5仿微软计算器程序
Mar 30 Python
Python图算法实例分析
Aug 13 Python
Python命令行解析模块详解
Feb 01 Python
Python3.5基础之函数的定义与使用实例详解【参数、作用域、递归、重载等】
Apr 26 Python
python版百度语音识别功能
Jul 09 Python
PyQt5基本控件使用之消息弹出、用户输入、文件对话框的使用方法
Aug 06 Python
Python列表删除元素del、pop()和remove()的区别小结
Sep 11 Python
python中的RSA加密与解密实例解析
Nov 18 Python
python实现简易淘宝购物
Nov 22 Python
Python3 Tensorlfow:增加或者减小矩阵维度的实现
May 22 Python
python自动化之如何利用allure生成测试报告
May 02 Python
Python对HTML转义字符进行反转义的实现方法
Apr 28 #Python
Django使用redis缓存服务器的实现代码示例
Apr 28 #Python
django的settings中设置中文支持的实现
Apr 28 #Python
Django数据库类库MySQLdb使用详解
Apr 28 #Python
Django中如何防范CSRF跨站点请求伪造攻击的实现
Apr 28 #Python
​如何愉快地迁移到 Python 3
Apr 28 #Python
python学习开发mock接口
Apr 28 #Python
You might like
php动态实现表格跨行跨列实现代码
2012/11/06 PHP
PHP不用第三变量交换2个变量的值的解决方法
2013/06/02 PHP
PHP代码保护--Zend Guard的使用详解
2013/06/03 PHP
ThinkPHP写数组插入与获取最新插入数据ID实例
2014/11/03 PHP
php实现refresh刷新页面批量导入数据的方法
2014/12/23 PHP
PHP+ajax分页实例简析
2015/12/07 PHP
PHP版微信小店接口开发实例
2016/11/12 PHP
php实现的PDO异常处理操作分析
2018/12/27 PHP
ThinkPHP框架整合微信支付之刷卡模式图文详解
2019/04/10 PHP
关于js内存泄露的一个好例子
2013/12/09 Javascript
JQuery Tips相关(1)----关于$.Ready()
2014/08/14 Javascript
javascript实现根据身份证号读取相关信息
2014/12/17 Javascript
深入理解JavaScript系列(28):设计模式之工厂模式详解
2015/03/03 Javascript
JS时间特效最常用的三款
2015/08/19 Javascript
JavaScript创建对象的方式小结(4种方式)
2015/12/17 Javascript
jQuery为某个div加入行样式
2017/06/09 jQuery
vue2.0 keep-alive最佳实践
2017/07/06 Javascript
JS生成随机打乱数组的方法示例
2017/12/23 Javascript
javascript中的replace函数(带注释demo)
2018/01/07 Javascript
详解vue.js根据不同环境(正式、测试)打包到不同目录
2018/07/13 Javascript
[09:13]2014DOTA2国际邀请赛 中国区预选赛coser表演
2014/05/23 DOTA
Python之reload流程实例代码解析
2018/01/29 Python
python递归法实现简易连连看小游戏
2020/03/25 Python
做一个能自适应高度的textarea的示例代码
2019/09/06 HTML / CSS
Elemis美国官网:英国的第一豪华护肤品牌
2018/03/15 全球购物
廉价连衣裙和婚纱礼服在线销售:Tbdress
2019/02/28 全球购物
Senreve官网:美国旧金山的奢侈手袋品牌
2019/03/21 全球购物
新闻系毕业生推荐信
2013/11/16 职场文书
小学教师培训方案
2014/06/09 职场文书
政风行风整改报告
2014/11/06 职场文书
小区环境卫生倡议书
2015/04/29 职场文书
遗愿清单观后感
2015/06/09 职场文书
庆元旦主持词
2015/07/06 职场文书
春季运动会加油词
2015/07/18 职场文书
2016年全国爱眼日宣传教育活动总结
2016/04/05 职场文书
win10壁纸在哪个文件夹 win10桌面背景图片文件位置分享
2022/08/05 数码科技