django系列3.2--url的别名和反向解析 reverse
命名URL和反向解析
在网页中某些要提交的地址等,需要改变的时候,此时网页过多,如果一个一个的去改,工作量巨大,这时就可以用到命名url,在html文件的模版中,只写命名,这样当需要我们改变urls.py中的url映射的网页地址时,就方便多了
一.普通的URL
urls.py
from django.conf.urls import url
from app01 import views
urlpatterns = [
url(r'^blog/', views.blog, name='xxx')
]
# name='xxx'是url的命名
url的命名使用:
1.视图函数
2.html网页的模版中
1.视图函数
views.py
from django.shortcuts import render, HttpResponse, redirect, reverse
def blog(request):
url = reverse('xxx')
print(url)
return HttpResponse('blog')
这时,我们访问地址就可以得到反向的url,views.py中的函数改为
def blog(request):
return redirect(reverse('xxx')) # ----> /app01/blog [blog就是xxx找到的]
2.模版中使用
语法:
{% url 名字%}
示例:
<a href="{% url 'xxx' %}">url命名和反向解析</a>
二.reverse使用分组的形式
1.视图函数中应用
urls.py
from django.conf.urls import url
from app01 import views
urlpatterns = [
url(r'^home/', views.home, name='home'),
url(r'^blog/(\d{4})/([1-9]{2})', views.blog, name='xxx'),
]
veiws.py
from django.shortcuts import render, HttpResponse, redirect, reverse
def blog(request,y,m):
url = reverse('xxx')
print(url)
return redirect(reverse('xxx'))
def home(request):
url = reverse('xxx',args=('2018','12'))
print('home的url',url) # /blog/2018/12
return HttpResponse('HOME页面')
这时候你访问 http://127.0.0.1:8000/home/ 就会得到 home的url /blog/2018/12
2.模版中使用
{% url 'xxx' 参数%}
三.reverse使用命名分组
1.视图函数中的应用
urls.py
from django.conf.urls import url
from app01 import views
urlpatterns = [
url(r'^home/', views.home, name='home'),
# url(r'^blog/(\d{4})/([1-9]{2})', views.blog, name='xxx'),
url(r'^blog/(?P<year>\d{4})/(?P<month>[1-9]{2})', views.blog, name='xxx'),
]
views.py
from django.shortcuts import render, HttpResponse, redirect, reverse
def blog(request,y,m):
url = reverse('xxx')
print(url)
return redirect(reverse('xxx'))
def home(request):
# url = reverse('xxx',args=('2018','12'))
# print('home的url',url) # 也可以使用
url = reverse('xxx', kwargs={'year':'2018','month':'12'})
print('home的命名的url', url)
return HttpResponse('HOME页面')
2.模版中使用
示例:
{% url 'del_pub' year='2018' month='12' %} // del_pub别名
django系列3.2--url的别名和反向解析 reverse的更多相关文章
- Django 的路由层URL 分组 路由分发 反向解析
URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表:你就是以这种方式告诉Django,对于这个URL调用这段代码,对于那个URL调 ...
- django url别名和反向解析 命名空间
url别名和反向解析 我们平时写的url名字都是死的,如果项目过大,需要项目中某个文件名改动一下,那么改动起来就不是一般的麻烦了,所以我们就在定义的时候给url起一个别名,以后不管哪个文件中运用都是用 ...
- day58——模板继承、组件、自定义标签和过滤器、inclusion_tag、静态文件配置、url别名和反向解析、url命名空间
day58 模板相关 模板继承(母版继承) 1. 创建一个xx.html页面(作为母版,其他页面来继承它使用) 2. 在母版中定义block块(可以定义多个,整个页面任意位置) {% block co ...
- 分组,命名分组,url的命名和反向解析
1.位置分组 匹配到参数,按照位置参数的方式传递给视图函数 视图函数需要定义形参接收变量 1.写在url里面的: # 删除 url(r'^del_class/(\d+)',views.del_clas ...
- URL的命名和反向解析
1. 分组 url(r'^del_publisher/(\d+)', views.del_publisher), 匹配到参数,按照位置参数的方式传递给视图函数 视图函数需要定义形参接收变量 2. 命名 ...
- diango url的命名和反向解析
url的命名和反向解析 静态路由 url(r'^login/', views.login,name='login'), 反向解析ht 模板 {% url 'login' %} --> '/app ...
- url的命名与反向解析
url命名和反向解析 1. 命名 # url(r'^press_list/$', views.press_list,name='press_list'), url(r'^pre/$', ...
- day 46 Django 学习3 数据库单表操作以及反向解析
前情提要: Django 已经学了不少了, 今天学习链接数据库的操作.以及相关的反向解析等 一:反向解析 1:反向解析模板层 跳转时设定url会随着前面的路由改变而改变 2:反向解析之 ...
- Django之url反向解析
在urls.py文件中,在进行url映射时,为请求的url命个名,以便在模板页面或者views.py视图中可以进行反向解析,同时在修改了url映射的请求路径,名称不变的情况下,不再修改模板页面或者视图 ...
随机推荐
- Spring cloud Hystrix使用@HystrixCommand使用Hystrix组件及@EnableCircuitBreaker原理介绍
通过@HystrixCommand注解实现在Spring Cloud使用Hystrix组件相关的工程 cloud-registration-center:注册中心 cloud-service-hyst ...
- 使用ES-Hadoop 6.5.4编写MR将数据索引到ES
目录 1. 开发环境 2. 下载地址 3. 使用示例 4. 参考文献 1. 开发环境 Elasticsearch 6.5.4 ES-Hadoop 6.5.4 Hadoop 2.0.0 2. 下载地址 ...
- TI davinci DM6467通过串口0将UBL和u-boot写入NAND flash
TI的davinci系列一般支持好几种启动模式,如下图TMS320DM6467的datasheet可以查到所有的BOOTMODE LVS301和LW9226的开发板上有一个选择bootmode的拨码开 ...
- 网页设计编辑利器——jQuery EasyUI所学整理(待编辑)
1, Messager弹窗信息 方法: $.messager.alert(...), 在网页中间弹出一个窗口 $.messager.confirm(...) 弹出一个确认窗口, 有确定和取消两个按钮, ...
- 18.4Sum (Map)
Given an array S of n integers, are there elements a, b, c, and d in S such that a + b + c + d = tar ...
- 理解UV贴图
一.理解UV贴图UVs是驻留在多边形网格顶点上的两维纹理坐标点,它们定义了一个两维纹理坐标系统,称为UV纹理空间,这个空间用U和V两个字母定义坐标轴.用于确定如何将一个纹理图像放置在三维的模型表面.本 ...
- 611. Valid Triangle Number三角形计数
[抄题]: 给定一个整数数组,在该数组中,寻找三个数,分别代表三角形三条边的长度,问,可以寻找到多少组这样的三个数来组成三角形? [暴力解法]: 全部都用for循环 时间分析: 空间分析: [思维问题 ...
- Kafka管理工具介绍
Kafka内部提供了许多管理脚本,这些脚本都放在$KAFKA_HOME/bin目录下,而这些类的实现都是放在源码的kafka/core/src/main/scala/kafka/tools/路径下. ...
- Create Empty Project In Vs But Not Debug?
问题描述 在使用VS创建一个空的项目管理,然后,添加项目.可是,这个时候,项目虽然可以运行,但是不能Debug进行调试. 解决方法 按照下面三张图像的设置即可.
- c#获取本地IP和MAC地址
1>通过wmi获取 using System; using System.Management; using System.Net; public class Program { static ...