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中使用matplotlib模块绘制数据图的示例
May 04 Python
详解Python编程中对Monkey Patch猴子补丁开发方式的运用
May 27 Python
python爬虫的工作原理
Mar 05 Python
Python实现将Excel转换为json的方法示例
Aug 05 Python
Python内置函数delattr的具体用法
Nov 23 Python
python机器学习理论与实战(六)支持向量机
Jan 19 Python
django DRF图片路径问题的解决方法
Sep 10 Python
Python第三方Window模块文件的几种安装方法
Nov 22 Python
python 检查是否为中文字符串的方法
Dec 28 Python
selenium WebDriverWait类等待机制的实现
Mar 18 Python
Python中全局变量和局部变量的理解与区别
Feb 07 Python
Python Django 后台管理之后台模型属性详解
Apr 25 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数组操作
2011/12/30 PHP
php 获取页面中指定内容的实现类
2014/01/23 PHP
PHP7 新特性详细介绍
2016/09/06 PHP
PHP实现用户异地登录提醒功能的方法【基于thinkPHP框架】
2018/03/15 PHP
jQuery EasyUI API 中文文档 - Tabs标签页/选项卡
2011/10/01 Javascript
Jquery图片延迟加载插件jquery.lazyload.js的使用方法
2014/05/21 Javascript
jQuery操作DOM之获取表单控件的值
2015/01/23 Javascript
jQuery蓝色风格滑动导航栏代码分享
2015/08/19 Javascript
浅谈javascript中执行环境(作用域)与作用域链
2016/12/08 Javascript
express框架实现基于Websocket建立的简易聊天室
2017/08/10 Javascript
webpack打包node.js后端项目的方法
2018/03/10 Javascript
Node.js HTTP服务器中的文件、图片上传的方法
2019/09/23 Javascript
基于JavaScript实现十五拼图代码实例
2020/04/26 Javascript
基于javascript的无缝滚动动画1
2020/08/07 Javascript
vue接口请求加密实例
2020/08/11 Javascript
详解JavaScript中new操作符的解析和实现
2020/09/04 Javascript
[55:23]VGJ.T vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Collatz 序列、逗号代码、字符图网格实例
2017/06/22 Python
python数据结构学习之实现线性表的顺序
2018/09/28 Python
Python 调用PIL库失败的解决方法
2019/01/08 Python
如何使用Python实现斐波那契数列
2019/07/02 Python
Python获取命令实时输出-原样彩色输出并返回输出结果的示例
2019/07/11 Python
Tensorflow模型实现预测或识别单张图片
2019/07/19 Python
使用Python实现画一个中国地图
2019/11/23 Python
PyQt5 如何让界面和逻辑分离的方法
2020/03/24 Python
python3.7+selenium模拟淘宝登录功能的实现
2020/05/26 Python
戴尔加拿大官网:Dell加拿大
2016/09/17 全球购物
JackJones官方旗舰店:杰克琼斯男装
2018/03/27 全球购物
配件采购员岗位职责
2013/12/03 职场文书
三八节主持词
2014/03/17 职场文书
竞选演讲稿范文大全
2014/05/12 职场文书
羽毛球比赛策划方案
2014/06/13 职场文书
居安思危观后感
2015/06/11 职场文书
深度学习详解之初试机器学习
2021/04/14 Python
教你如何用python开发一款数字推盘小游戏
2021/04/14 Python
Html5生成验证码的示例代码
2021/05/10 Javascript