Python Django框架url反向解析实现动态生成对应的url链接示例


Posted in Python onOctober 18, 2019

本文实例讲述了Python Django框架url反向解析实现动态生成对应的url链接。分享给大家供大家参考,具体如下:

  • url反向解析:根据url路由规则,动态生成对应的url链接 (防止硬编码)。
  • url反向解析应用在两个地方:模板中的超链接,视图中的重定向。

项目名/urls.py(项目的url路由配置,url反向解析,取namespace名字):

from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
 url(r'^admin/', include(admin.site.urls)),
 url(r'^', include('booktest.urls', namespace='booktest')), # 为对应的应用中的url路由定义namespace名字。
]

应用名/urls.py(应用的url路由配置,为url路由取name名字):

from django.conf.urls import url
from booktest import views
urlpatterns = [
 url(r'^index$', views.index, name='index'), # url反向解析,取name名字。
 url(r'^show_args/(\d+)/(\d+)$', views.show_args, name='show_args'), # 捕获位置参数
 url(r'^show_kwargs/(?P<c>\d+)/(?P<d>\d+)$', views.show_kwargs, name='show_kwargs'), # 捕获关键字参数
]

应用名/views.py(视图,视图函数中使用url反向解析):

from django.shortcuts import render,redirect
from django.core.urlresolvers import reverse # url反向解析
# 视图函数。 视图函数中使用url反向解析,动态生成对应的url。
def test_redirect(request):
 # 重定向到/index
 # url = reverse('booktest:index')
 # 重定向到/show_args/1/2 url中有位置参数
 # url = reverse('booktest:show_args', args=(1,2)) # url中拼接位置参数
 # 重定向到/show_kwargs/3/4 url中有关键字参数
 url = reverse('booktest:show_kwargs', kwargs={'c':3, 'd':4}) # url中拼接关键字参数
 return redirect(url)
 # return redirect('/index')

templates/应用名/demo.html(模板文件,模板中使用url反向解析):

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>url反向解析</title>
</head>
<body>
 url反向解析动态生成index链接:<br/>
 <a href="{% url 'booktest:index' %}" rel="external nofollow" >首页</a>
 url中传递位置参数,动态产生/show_args/1/2:<br/>
 <a href="{% url 'booktest:show_args' 1 2 %}" rel="external nofollow" >url中传递位置参数</a><br/>
 url中传递关键字参数:/show_kwargs/3/4:<br/>
 <a href="{% url 'booktest:show_kwargs' c=3 d=4 %}" rel="external nofollow" >url中传递关键字参数</a>
</body>
</html>

在模板文件中使用url反向解析,格式如下:

{% url 'namespace名字:name名字' %} 例如 {% url 'booktest:fan2' %}

带位置参数:

{% url 'namespace名字:name名字' 位置参数 %} 例如 {% url 'booktest:fan2' 1 %}

带关键字参数:

{% url 'namespace名字:name名字' 关键字参数 %}  例如 {% url 'booktest:fan2' id=1 %}

视图中使用url反向解析(可用于重定向):

from django.core.urlresolvers import reverse

无参数:

reverse('namespace名字:name名字')

如果有位置参数

reverse('namespace名字:name名字', args = 位置参数元组)

如果有关键字参数

reverse('namespace名字:name名字', kwargs=字典)

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

Python 相关文章推荐
Python实现单词拼写检查
Apr 25 Python
Python脚本实现Web漏洞扫描工具
Oct 25 Python
Python实现动态加载模块、类、函数的方法分析
Jul 18 Python
Bottle框架中的装饰器类和描述符应用详解
Oct 28 Python
python和opencv实现抠图
Jul 18 Python
详解用python实现基本的学生管理系统(文件存储版)(python3)
Apr 25 Python
Python3日期与时间戳转换的几种方法详解
Jun 04 Python
使用Python opencv实现视频与图片的相互转换
Jul 08 Python
Python + Flask 实现简单的验证码系统
Oct 01 Python
python 如何去除字符串头尾的多余符号
Nov 19 Python
通过Turtle库在Python中绘制一个鼠年福鼠
Feb 03 Python
将tf.batch_matmul替换成tf.matmul的实现
Jun 18 Python
OpenCV模板匹配matchTemplate的实现
Oct 18 #Python
python处理excel绘制雷达图
Oct 18 #Python
使用Python进行中文繁简转换的实现代码
Oct 18 #Python
Python Django框架防御CSRF攻击的方法分析
Oct 18 #Python
python使用matplotlib绘制雷达图
Oct 18 #Python
Python 日志logging模块用法简单示例
Oct 18 #Python
python调用matplotlib模块绘制柱状图
Oct 18 #Python
You might like
php微信开发接入
2016/08/27 PHP
PHP上传图片时判断上传文件是否为可用图片的方法
2016/10/20 PHP
php获取文件名称和扩展名的方法
2017/02/07 PHP
JQuery 简便实现页面元素数据验证功能
2007/03/24 Javascript
自己动手开发jQuery插件教程
2011/08/25 Javascript
获取元素距离浏览器周边的位置的方法getBoundingClientRect
2013/04/17 Javascript
js制作简易年历完整实例
2015/01/28 Javascript
bootstrap学习使用(导航条、下拉菜单、轮播、栅格布局等)
2016/12/01 Javascript
js使用i18n实现页面国际化的方法
2017/05/09 Javascript
微信小程序图片选择、上传到服务器、预览(PHP)实现实例
2017/05/11 Javascript
关于预加载InstantClick的问题解决方法
2017/09/12 Javascript
小程序云开发初探(小结)
2018/10/24 Javascript
Vue 列表上下过渡效果的实例代码
2019/06/25 Javascript
NodeJs crypto加密制作token的实现代码
2019/11/15 NodeJs
原生js实现轮播图特效
2020/05/04 Javascript
原生JS封装拖动验证滑块的实现代码示例
2020/06/01 Javascript
jQuery实现鼠标拖动图片功能
2021/03/04 jQuery
[02:46]2014DOTA2国际邀请赛 选手为你解读比赛MVP充满梦想
2014/07/09 DOTA
python使用xauth方式登录饭否网然后发消息
2014/04/11 Python
创建Shapefile文件并写入数据的例子
2019/11/26 Python
Python将二维列表list的数据输出(TXT,Excel)
2020/04/23 Python
Python实现ElGamal加密算法的示例代码
2020/06/19 Python
selenium切换标签页解决get超时问题的完整代码
2020/08/30 Python
Jo Malone美国官网:祖玛珑香水
2017/03/27 全球购物
IWOOT美国:新奇的小玩意
2018/04/27 全球购物
Anya Hindmarch官网:奢侈设计师手袋及配饰
2018/11/15 全球购物
Bed Bath & Beyond加拿大官网:购买床上用品、浴巾、厨房电器等
2019/10/04 全球购物
英国专业美容产品在线:Mylee(从指甲到脱毛)
2020/07/06 全球购物
SQL Server 2000数据库的文件有哪些,分别进行描述。
2015/11/09 面试题
自荐信的禁忌和要点
2013/10/15 职场文书
师德个人剖析材料
2014/02/02 职场文书
党员公开承诺书范文
2014/03/25 职场文书
学生夜不归宿检讨书
2014/09/23 职场文书
行政前台岗位职责
2015/04/16 职场文书
聘任协议书(挂靠)
2015/09/21 职场文书
MySQL 存储过程的优缺点分析
2021/05/20 MySQL