Django框架反向解析操作详解


Posted in Python onNovember 28, 2019

本文实例讲述了Django框架反向解析操作。分享给大家供大家参考,具体如下:

1. 定义:

随着功能的增加会出现更多的视图,可能之前配置的正则表达式不够准确,于是就要修改正则表达式,但是正则表达式一旦修改了,之前所有对应的超链接都要修改,真是一件麻烦的事情,而且可能还会漏掉一些超链接忘记修改,有办法让链接根据正则表达式动态生成吗? 就是用反向解析的办法。

2. 应用范围:

  • 模板中的超链接
  • 视图中的重定向

3. 使用方法:

  • 定义url时,需要为include定义namespace属性,为url定义name属性
  • 使用时,在模板中使用url标签,在视图中使用reverse函数,根据正则表达式动态生成地址,减轻后期维护成本。

4. 模板中超链接步骤:

1)在项目urls.py中为include定义namespace属性。

url(r'^',include('booktest.urls',namespace='booktest')),

2)在应用的urls.py中为url定义name属性,并修改为fan2。

url(r'^fan2/$', views.fan2,name='fan2'),

3)在模板中使用url标签做超链接,此处为templates/booktest/fan1.html文件。

<html>
<head>
  <title>反向解析</title>
</head>
<body>
普通链接:<a href="/fan2/" rel="external nofollow" >普通fan2</a>
<hr>
反向解析:<a href="{%url 'booktest:fan2'%}" rel="external nofollow" >反向解析fan2</a>
</body>
</html>

4)回到浏览器中,后退,刷新,查看源文件,两个链接地址一样。

 Django框架反向解析操作详解

5)在应用的urls.py中,将fan2修改为fan_show。

url(r'^fan_show/$', views.fan2,name='fan2'),

6)回到浏览器中,刷新,查看源文件,两个链接地址不一样。

Django框架反向解析操作详解

4. 视图中的重定向:

from django.shortcuts import redirect
from django.core.urlresolvers import reverse
return redirect(reverse('booktest:fan2'))

5. 反向解析中URL的参数

位置参数

1)在booktest/urls.py中,修改fan2如下:

url(r'^fan(\d+)_(\d+)/$', views.fan2,name='fan2'),

2)修改templates/booktest/fan1.html文件如下:

<html>
<head>
  <title>反向解析</title>
</head>
<body>
普通链接:<a href="/fan2_3/" rel="external nofollow" >fan2</a>
<hr>
反向解析:<a href="{%url 'booktest:fan2' 2 3%}" rel="external nofollow" >fan2</a>
</body>
</html>

3)回到浏览器中,刷新,查看源文件如下图:

Django框架反向解析操作详解

使用重定向传递位置参数格式如下:

return redirect(reverse('booktest:fan', args=(2,3)))

关键字参数

1)在booktest/urls.py中,修改fan2如下:

url(r'^fan(?P<id>\d+)_(?P<age>\d+)/$', views.fan2,name='fan2'),

2)修改templates/booktest/fan1.html文件如下:

<html>
<head>
  <title>反向解析</title>
</head>
<body>
普通链接:<a href="/fan100_18/" rel="external nofollow" >fan2</a>
<hr>
反向解析:<a href="{%url 'booktest:fan2' id=100 age=18%}" rel="external nofollow" >fan2</a>
</body>
</html>

3)回到浏览器中,刷新,查看源文件如下图:

Django框架反向解析操作详解

使用重定向传递关键字参数格式如下:

return redirect(reverse('booktest:fan2', kwargs={'id':110,'age':26}))

希望本文所述对大家基于Django框架的Python程序设计有所帮助。

Python 相关文章推荐
python实现ping的方法
Jul 06 Python
深入解析Python设计模式编程中建造者模式的使用
Mar 02 Python
Python常见异常分类与处理方法
Jun 04 Python
Python爬虫实现爬取京东手机页面的图片(实例代码)
Nov 30 Python
pandas or sql计算前后两行数据间的增值方法
Apr 20 Python
Python使用OpenCV进行标定
May 08 Python
使用CodeMirror实现Python3在线编辑器的示例代码
Jan 14 Python
selenium跳过webdriver检测并模拟登录淘宝
Jun 12 Python
使用Python opencv实现视频与图片的相互转换
Jul 08 Python
python 二维矩阵转三维矩阵示例
Nov 30 Python
Python实现定时监测网站运行状态的示例代码
Sep 30 Python
Python机器学习工具scikit-learn的使用笔记
Jan 28 Python
Django框架中间件定义与使用方法案例分析
Nov 28 #Python
Python Numpy 自然数填充数组的实现
Nov 28 #Python
Python创建数字列表的示例
Nov 28 #Python
flask框架json数据的拿取和返回操作示例
Nov 28 #Python
Python 生成一个从0到n个数字的列表4种方法小结
Nov 28 #Python
django 框架实现的用户注册、登录、退出功能示例
Nov 28 #Python
python 变量初始化空列表的例子
Nov 28 #Python
You might like
Windows下的PHP5.0安装配制详解
2006/09/05 PHP
使用PHP编写发红包程序
2015/07/22 PHP
PHP实现清除MySQL死连接的方法
2016/07/23 PHP
laravel orm 关联条件查询代码
2019/10/21 PHP
js onpropertychange输入框 事件获取属性
2009/03/26 Javascript
javascript中常用编程知识
2013/04/08 Javascript
jQuery写的日历(包括日历的样式及功能)
2013/04/23 Javascript
Jquery通过JSON字符串创建JSON对象
2014/08/24 Javascript
js实现图片和链接文字同步切换特效的方法
2015/02/20 Javascript
select隐藏选中值对应的id,显示其它id的简单实现方法
2016/08/25 Javascript
AngularJS中transclude用法详解
2016/11/03 Javascript
NodeJS、NPM安装配置步骤(windows版本) 以及环境变量详解
2017/05/13 NodeJs
深入解析nodejs HTTP服务
2017/07/25 NodeJs
vue在使用ECharts时的异步更新和数据加载详解
2017/11/22 Javascript
vue动态绑定class的几种常用方式小结
2019/05/21 Javascript
Vue可自定义tab组件用法实例
2019/10/24 Javascript
微信小程序12行js代码自己写个滑块功能(推荐)
2020/07/15 Javascript
Python的SQLAlchemy框架使用入门
2015/04/29 Python
在Python中处理字符串之isdigit()方法的使用
2015/05/18 Python
python常见排序算法基础教程
2017/04/13 Python
用Python将mysql数据导出成json的方法
2018/08/21 Python
Python2与Python3的区别实例分析
2019/04/11 Python
Python面向对象之类的封装操作示例
2019/06/08 Python
Pytorch 使用opnecv读入图像由HWC转为BCHW格式方式
2020/06/02 Python
StubHub智利:购买和出售您的门票
2016/11/23 全球购物
比利时香水网上商店:NOTINO
2018/03/28 全球购物
用友笔试题目
2016/10/25 面试题
幼儿园园长岗位职责
2013/11/26 职场文书
社区服务活动总结
2014/05/07 职场文书
创建绿色学校先进个人材料
2014/08/20 职场文书
党的生日演讲稿
2014/09/10 职场文书
不听老师话的万能检讨书
2014/10/04 职场文书
学习党的群众路线教育实践活动心得体会范文
2014/11/03 职场文书
新教师个人总结
2015/02/06 职场文书
离婚案件被告代理词
2015/05/23 职场文书
廉政党课工作报告案例
2019/06/21 职场文书