Django反正解析路由
首先要了解为什么要定义反响解析
因为随着功能的增加会出先非常多的视图和对应的路由,有可能项目的一些需要一些模板需要重写路由,或之前配置的正则表达式不够准确,于是就要修改正则表达式,但是路由或正则表达式一旦进行修改,之前对应其的超链接都要进行修改这是一个非常麻烦的事情,路由过多的话更改过程会有一些被忘记更改,这里就反向解析的作用就起到了。
使用范围
模板超链接
视图方法重定向
使用方法
首先要在路由urls.py文件内声明命名空间
#声明明名空间 app_name为固定的后面可以自己定义因为后续用频率非常频繁所有建议大家用子模块项目名称命名
app_name = 'myapp'
下面设置路由先看第一种
路由文件
urlpatterns = [
path('',TemplateView.as_view(template_name='index.html')),
#反向解析 ()内为匹配参数不需要的话也可以不加 name参数指定声明的命名
re_path('^test_rev_(.+?)$',TestRev.as_view(),name='test_name') ]
视图类 设置完成即可进入相应的视图方法进行重定向
#导入类视图
from django.views import View
#导入反响解析方法
from django.urls import reverse #定义类视图
class Test(View): def get(self,request): #第一个是命名空间 值为个是路由命名 使用第二个来控制参数 注意参数要为tuple所有一个元素是也要加逗号 如果路由方法没有设置参数args可以去掉
return redirect(reverse('myapp:test_name',args=(456,)))
模板 超连接跳转
{# url为固定写法 第一个参数应用名称 对应的值为参数自定义命名 123为参数#}
<a href="{% url 'myapp:test_name' 123 %}">反响解析</a>
第二种方法指定参数进行传参
路由文件
urlpatterns = [
path('',TemplateView.as_view(template_name='index.html')),
#反响解析 keyargs 使用参数指定<>内为key 其后为要匹配的value 参数指定命名
re_path('^test_dict_(?P<username>.+?)$',TestRevDict.as_view(),name='test_name_dict'),
]
类视图重定向
#定义类视图
class Test(View): def get(self,request):
#跟上一个一样第一个是命名空间 值为个是路由命名 使用第二个来控制参数这样的参数要用kwargs来指定传参
return redirect(reverse('myapp:test_name_dict',kwargs=({'username':'qewq'})))
模板 超连接跳转
{# 第一个参数应用名称 值为参数自定义命名 参数要进行指定 #}
<a href="{% url 'myapp:test_name_dict' username='jack' %}">反响解析(keyargs)</a>
在写好相应的视图方法接收相应参数即可
#定义接口返回数据
class ReturnText(View):
def post(self,request):
#接收参数
username = request.POST.get('username','未收到')
return HttpResponse('接收到的是'+username)
Django反正解析路由的更多相关文章
- Django学习之路由分发和反向解析
原 Django学习之路由分发和反向解析 2018年07月12日 14:04:55 huangql517 阅读数 519 1>路由分发 我们之前学习的路由配置都是在项目的全局控制文件(项目名称目 ...
- Django框架04 /模板相关、别名/反向解析/路由分发
Django框架04 /模板相关.别名/反向解析/路由分发 目录 Django框架04 /模板相关.别名/反向解析/路由分发 1. 语法 2. 变量/万能的点 3 . 过滤器 4. 标签Tags 5. ...
- [Django框架之路由层匹配、有名 无名分组、反向解析、路由分发、名称空间、伪静态、本地虚拟环境、django版本区别]
[Django框架之路由层匹配.有名 无名分组.反向解析.路由分发.名称空间.伪静态.本地虚拟环境.django版本区别] 路由层 路由即请求地址与视图函数的映射关系,如果把网站比喻成一本书,那路由就 ...
- django介绍及路由系统
第一:Python的web框架介绍 Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引 ...
- Django之url路由
Django之url路由 url路由介绍 url路由是关联url及其视图函数关系的过程. 作用就是使views里面处理数据的函数与请求的url建立映射关系 url路由配置 Django的url路由配置 ...
- Django中的路由配置简介
Django中的路由配置简介 路由配置(URLconf)就是Django所支撑网站的目录.其实,我们利用路由交换中的"寻址"的概念去理解Django的路由控制会简单很多,它的本质就 ...
- Django 02 url路由配置及渲染方式
Django 02 url路由配置及渲染方式 一.URL #URL #(Uniform Resoure Locator) 统一资源定位符:对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是 ...
- Django基础之路由(urls)层
目录 Django基础之路由(urls)层 无名分组与有名分组 无名分组 有名分组 反向解析 前段解析 后端解析 无名分组反向解析 前段解析 后端解析 有名分组的反向解析 前段解析 后端解析 路由分发 ...
- Django的日常-路由层
目录 Django的日常-2 路由层 有名分组和无名分组 反向解析 路由的分发 Django的日常-2 路由层 我们之前已经接触过路由层,只是我们可能不知道他叫这个名字,实际上在Django里面路由层 ...
随机推荐
- Android——MaterialDesign之二DrawerLayout
滑动菜单--DrawerLayout 滑动菜单就是把一些菜单选项隐藏起来,而不是放置主屏幕中,然后可以通过滑动的方式将菜单显示出来,具有非常的画面效果,就是类似侧边滑动. 例子:需要上一次的Toolb ...
- WPF当属性值改变时利用PropertyChanged事件来加载动画
在我们的程序中,有时我们需要当绑定到UI界面上的属性值发生变化从而引起数据更新的时候能够加载一些动画,从而使数据更新的效果更佳绚丽,在我们的程序中尽量将动画作为一种资源放在xaml中,而不是在后台中通 ...
- qtp自动化测试-条件语句 if select case
1 if 语句 if condition then end if If condition Then [statements] [ElseIf condition-n Then [else ...
- 今天开始学习模式识别与机器学习Pattern Recognition and Machine Learning (PRML),章节5.1,Neural Networks神经网络-前向网络。
话说上一次写这个笔记是13年的事情了···那时候忙着实习,找工作,毕业什么的就没写下去了,现在工作了有半年时间也算稳定了,我会继续把这个笔记写完.其实很多章节都看了,不过还没写出来,先从第5章开始吧, ...
- Spring Boot 构建电商基础秒杀项目 (二) 使用 Spring MVC 方式获取用户信息
SpringBoot构建电商基础秒杀项目 学习笔记 修改 DOMapper 在 UserPasswordDOMapper.xml 添加: <select id="selectByUse ...
- 实验吧 WEB 头有点大
看到了良心的提示,http header,之后看到了要求.NET framework 9.9 英国 IE,我想想.NET好像还没有更新到9.9,就无视了这重要的提示. 我就看了一眼题解,发现burps ...
- BZOJ3676[Apio2014]回文串——回文自动机
题目描述 考虑一个只包含小写拉丁字母的字符串s.我们定义s的一个子串t的“出 现值”为t在s中的出现次数乘以t的长度.请你求出s的所有回文子串中的最 大出现值. 输入 输入只有一行,为一个只包含小写字 ...
- CodeCraft-19 and Codeforces Round #537 Div. 2
D:即有不超过52种物品,求容量为n/2的有序01背包方案数.容易想到设f[i][j]为前i种物品已用容量为j的方案数,有f[i][j]=f[i-1][j-a[i]]*C(n/2-j+a[i],a[i ...
- LOJ6053 简单的函数 【Min_25筛】【埃拉托斯特尼筛】
先定义几个符号: []:若方括号内为一个值,则向下取整,否则为布尔判断 集合P:素数集合. 题目分析: 题目是一个积性函数.做法之一是洲阁筛,也可以采用Min_25筛. 对于一个可以进行Min_25筛 ...
- 【XSY2669】归并排序 树状数组 简单组合数学
题目描述 有一个长度为\(n\)的排列\(n=2^k\),你要把这个数组归并排序.但是在长度为\(2\)的时候有\(\frac{1}{2}\)的概率会把两个数交换(就是有\(\frac{1}{2}\) ...