Django中url name
花了好长时间才明白这个name参数的含义。便写下来了备忘
当我们在url的时候,一般情况下都是使用很明确的url地址。如在网页里面使用<a href="/login">登录</a>.像这样的链接有很
多。假如有一天,突然需要改变登录的链接,想将/login变成/login_first 这样的话,就需要将url里面的正则改变成
^login_first/$,同事再将<a>标签里面的href变成/login_first。像这样<a>的链接太多了,根本就无法修改。所以这里就可以
使用url里面自带的name的方法。 对于像<a>这样链接的操作。 用法: 不带参数的: {% url 'name' %} 带参数的:参数可以是变量名 {% url 'name' 参数 %} 所以这里的改变为:url('^login_first/$',views.login,name="login_first")(对于其他部分自动补脑),在<a href="{% url
'login_first'%}">. 解释:{% url 'login_first'%},这里的login_first代表着这个url自动去寻找django的url里面name="login_first"这个条链
接,并将前面的url赋给<a>标签中的href。
这时如何让以前的 /add/3/4/自动跳转到新的网址呢?要知道Django不会帮你做这个,这个需要自己来写一个跳转方法。 这里需要我们使用reverse这个函数,作用:reverse 接收 url 中的 name 作为第一个参数
old的方法:url: url(r'^add/(\d+)/(\d+)/$', views.add2),
views: from django.http import HttpResponseRedirect,HttpResponse
from django.core.urlresolvers import reverse
def add2(request,a,b):
c=int(a)+int(b)
return HttpResponse(str(c))
new方法:
url(r'^add/(\d+)/(\d+)/$', views.add2_redirect),
url(r'^new_add/(\d+)/(\d+)/$', views.add2, name='add2'),
views:
from django.http import HttpResponseRedirect,HttpResponse
from django.core.urlresolvers import reverse
##新添的函数
def add2_redirect(request, a, b):
return Redirect(reverse('add2', args=(a, b))
def add2(request,a,b):
c=int(a)+int(b)
return HttpResponse(str(c))
原本我们访问127.0.0.1/add/3/4/ 会得到7 现在的话,我们访问127.0.0.1/add/3/4/会得到新的链接/127.0.0.1/new_add/3/4/,并且新的链接的内容也是7
解释:reverse的第一个参数为add2,那么它就会到url取新的链接,为new_add/,再加上后面的参数,就成为/new_add/3/4,并且使用add2的函数,得到想要的值。
参考:http://www.ziqiangxuetang.com/django/django-url-name.html
Django中url name的更多相关文章
- Django中url匹配规则的补充
Django中url匹配规则是在urls.py文件中配置的. 1.关于正则匹配优先级 在url匹配列表中,如果第一条和第二条同时满足匹配规则,则优先匹配第一条. 在url匹配列表中,如果第一条为正则模 ...
- django中url路由配置及渲染方式
今天我们学习如何配置url.如何传参.如何命名.以及渲染的方式,内容大致有以下几个方面. 创建视图函数并访问 创建app django中url规则 捕获参数 路径转换器 正则表达式 额外参数 渲染方式 ...
- django中url 和 path 的区别
django中 url 和 path 都是配置路径,有什么不同? django.urls path django.conf.urls url path 与 url 是两个不同的模块,效果都是响应返回 ...
- django 中url与path小记
1. 在django 2.0中增加了一些新的特性 更简单的URL路由语法 (Simplified URL routing syntax) admin应用的针对移动设备的优化改进(Mobile-frie ...
- Django——URL详解/Django中URL是如何与urls文件匹配的
URL标准语法 protocol://hostname[:port]/path/[:parameters][?query]#fragment https://i.cnblogs.com/EditPos ...
- Django 中url补充以及模板继承
Django中的URL补充 默认值 在url写路由关系的时候可以传递默认参数,如下: url(r'^index/', views.index,{"name":"root& ...
- Django中url使用命名空间的错误
出的错误: 1. Reverse for 'llist' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) ...
- Django中URL有关
django 模板中url的处理 在模板中直接添加‘/home’这样的链接是十分不推荐的,因为这是一个相对的链接,在不同网页中打开可能会返回不一样的结果. 所以推荐的是 1 <a href= ...
- django中url,静态文件,POST请求的配置 分类: Python 2015-06-01 17:00 789人阅读 评论(0) 收藏
平时使用的是pycharm,所以这篇文章主要也是使用pycharm默认创建的django项目为基础进行讲解.项目目录如下图: 1.URL的配置 当创建好项目后,运行项目就可以看到django默认的页面 ...
- Django中url的反向查询
明确几个概念: application namespace: 正在部署的app的名称,一个app的多个实例应该具有相同的application namespace. 可以通过在URLconf模 ...
随机推荐
- python3 求一个list的所有子集
python3 求一个list的所有子集 def PowerSetsBinary(items): N = len(items) for i in range(2 ** N):#子集的个数 combo ...
- node安装升级过程中遇到的问题汇总
一.Node already installed, it's just not linked 第一步:sudo chown -R $(whoami) $(brew --prefix)/* 第二步:br ...
- python写excel总结
废话不说,直接上代码:import xlrd import xlwt # 读excel然后写到mysql的套路def updata_info(): book = xlrd.open_workbook( ...
- MySQL学习(九)小结
redo-log 和 bin-log 是如何联系起来的? update 语句在更新的时候先更新内存后,写 redo-log 然后 bin-log ,其中后面一步是使用了两阶段提交, 也就是每一个更新都 ...
- Flask 教程 第十九章:Docker容器上的部署
本文翻译自The Flask Mega-Tutorial Part XIX: Deployment on Docker Containers 这是Flask Mega-Tutorial系列的第十九部分 ...
- jmeter的使用---用户变量
用户变量有以下方式: 一.外部引入:csv引入参数 二.sample传递参数:http请求的body参数 三.定义用户变量:全局变量 (1)用户定义的变量 name,和value 一对一 (2)用 ...
- 在VS2017中配置VLD(Visual Leak Detector)内存泄漏检测工具
首先在官方下载VLD 下载地址: https://kinddragon.github.io/vld/ 此版本为V2.5.1,为最后发布版本,下载后安装.加入你的安装路径为:VLD_Path,后面会用到 ...
- 【StarUML】组件图
架构设计中可视化地表达各个组件之间依赖关系以及组件的接口调用情况 1.元素 a.组件 b.接口 b1.组件暴露接口 暴露接口,需要先画一个接口 然后建立组件和接口的联系,这里是暴露接口,那么这个连线就 ...
- sqli-libs(29(jspstudy)-31关)
Less_29 Less-29: 需要用到jspstudy跟phpstudy 搭建jspstudy: sqli-labs-master文件夹下面还有tomcat文件,这才是真正的关卡,里面的jsp ...
- GIL/Copy/私有/面向对象
1. GIL Python语言和GIL没有关系.仅仅是由于历史原因在Cpython虚拟机(解释器),难以移除GIL. GIL:全局解释器锁.每个线程在执行的过程都需要先获取GIL,保证同一时刻只有一个 ...