django路由的反向解析
什么是路由的反向解析
我们的路由都是一个匹配关系,对应一个处理的视图函数,
如果我们的匹配关系发生了变化,那么与之对应的访问地址(可能前端直接url链接,
也可能是后端的redrict跳转)都需要跟着发生改变
这是费时费力,因此我们想到了一种动态解析url的方法,通过给相应
的匹配关系起别名,而让与之对应的链接或者跳转,会根据别名动态解析前面的匹配关系
这个动态解析url路径的过程就是反向解析
反向解析实现的方式
不传参反向解析
我们先给后端的匹配关系起一个别名,这个别名任意取名都可以
url(r'^test/', test, name='xxx')
1、前端实现
通过在链接处输入{% url '路由的别名xxx' %}
<a href="{% url 'xxx' %}"></a>
<form action="{% url 'xxx' %}"></form>
2、后端实现
后端通过reverse('别名')
from django.shortcuts import redirect, reverse
def tt(request):
_url = reverse('xxx')
return redirect(_url)
传参反向解析
上面说的都是函数不需要传参的,还有一种需要传参的路由匹配
url(r'testsas/(\d+)', test, name='xxx'),
1、前端实现
直接接着后面跟参数就行
<a href="{% url 'xxx' 1 %}"></a>
<form action="{% url 'xxx' 9 %}"></form>
2、后端实现
在reverse中加入args参数,以元组形式传参
from django.shortcuts import redirect, reverse
def tt(request):
_url = reverse('xxx',args=(1,))
return redirect(_url)
django路由的反向解析的更多相关文章
- Django3 Django 路由分发,反向解析,2.0版本的path
urls配置像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表:你就是以这种方式告诉Django,对于客户端发来的某个URL调用哪一段逻辑代码对应执行. 1.简 ...
- Django之路由分发反向解析
Django路由分发|反向解析 当一个Django中有多个app时,路由会有很多,将这些路由都写在与项目同名的文件夹下就会显得很多,很乱.并且在协同开发的时候容易出现相同的命名,当项目合并后就会出现路 ...
- Django 的路由层URL 分组 路由分发 反向解析
URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表:你就是以这种方式告诉Django,对于这个URL调用这段代码,对于那个URL调 ...
- django之路由分组,反向解析,有名,无名分组
路由层 无名分组 有名分组 反向解析 路由分发 名称空间 伪静态的概念 urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'test',vi ...
- django的url反向解析
目的:防止页面中url地址改变,其他与这个URL地址有关联的都要改,减少耦合度 使用:主要分为在html中和视图函数中的使用 HTML中的使用: 如果我们在项目的url文件中通过include导入了应 ...
- Django学习笔记之Django的url反向解析
0x00 URL反向解析和三种不同的反向解析方式 Django中提供了关于URL的映射的解决方案,可以做两个方向的使用: 1.普通解析过程:由客户端的浏览器发起一个url请求,Django根据URL解 ...
- Django之url反向解析
在urls.py文件中,在进行url映射时,为请求的url命个名,以便在模板页面或者views.py视图中可以进行反向解析,同时在修改了url映射的请求路径,名称不变的情况下,不再修改模板页面或者视图 ...
- day53:django:URL别名/反向解析&URL分发&命名空间&ORM多表操作修改/查询
目录 1.URL别名&反向解析 2.URL分发&命名空间 3.ORM多表操作-修改 4.ORM多表操作-查询 4.1 基于对象的跨表查询 4.2 基于双下划线的跨表查询 4.3 聚合查 ...
- django url配置-反向解析-视图函数-HttpRequest对象-HttpResponse对象-cookies-session-redis缓存session
""" --视图概述:-- 作用:视图接受WEB请求,并响应WEB请求 本质:视图就是一个python中的函数 响应: 1.网页: 一.重定向 二.错误视图 400,50 ...
随机推荐
- protobuf使用
一.protobuf环境搭建 Github 地址: https://github.com/protocolbuffers/protobuf 然后进入下载页 https://github.com/pro ...
- THOR: Tracking Holistic Object Representations
THOR: Tracking Holistic Object Representations BMVC 2019 Oral 2019-08-04 10:30:09 Paper: https://arx ...
- 【转】使用AllureReport生成测试报告
Allure简介 Allure是一个report框架,可以基于一些测试框架生成测试报告,比较常用的一般是Junit/Testng框架:Allure 生成的报告样式简洁美观,同时又支持中文:Allure ...
- powshell 输出字符编码的问题,设置为utf-8
https://blog.csdn.net/qianxiao_1/article/details/79463409 $PSDefaultParameterValues['Out-File:Encodi ...
- jeff dean的主页
https://ai.google/research/people/jeff/ 上面有他的很多论文和ppt 很不错 我于1999年中期加入Google,目前是研究小组的Google高级研究员,负责Go ...
- 必须要注意的 C++ 动态内存资源管理(一)——视资源为对象
必须要注意的 C++ 动态内存资源管理(一)——视资源为对象 一.前言 所谓资源就是,一旦你用了它,将来必须还给系统.如果不这样,糟糕的事情就会发生.C++ 程序中最常见使用的资源就是 ...
- plsql 的三种循环
set serveroutput on declare pnum ; begin loop dbms_output.put_line(pnum); pnum :; end loop; end; / s ...
- LeetCode_412. Fizz Buzz
412. Fizz Buzz Easy Write a program that outputs the string representation of numbers from 1 to n. B ...
- 【计算机视觉】PASCAL VOC数据集分析
PASCAL VOC数据集分析 PASCAL VOC为图像识别和分类提供了一整套标准化的优秀的数据集,从2005年到2012年每年都会举行一场图像识别challenge. 本文主要分析PASCAL V ...
- Postman系列三:Postman中post接口实战(上传文件、json请求)
一:接口测试过程中GET请求与POST请求的主要区别 从开发角度我们看get与post的主要区别是:1.Get是用来从服务器上获得数据,而Post是用来向服务器上传递数据:2.Get安全性比Post低 ...