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里面路由层 ...
随机推荐
- python学习笔记(11)--测验3: Python基础语法(下) (第7周)
斐波那契数列计算 B 描述 斐波那契数列如下: F(0) = 0, F(1) = 1 F(n) = F(n-1) + F(n-2) 编写一个计算斐波那契数列的函数,采用递归方式,输出不超过n的所有斐波 ...
- 个人用的感觉比较舒服的 idea 插件,不定时更新
1.mybatis plugin 用的最舒服的 idea 上的 plugin 之一,快速跳转 dao 的映射的 xml 文件,生成配置文件.语法提示等 不过这个收费,,具体步骤百度吧 2.Rainbo ...
- fdisk磁盘分区与挂载
参考博客:https://blog.csdn.net/capecape/article/details/78499351?locationNum=6&fps=1 1.查看磁盘分区情况.root ...
- php new self()
php里new self() 一般在类内部使用,作用是对自身类实例化 <?php class test{ public function __construct(){ echo ' ...
- Maven最佳实战
Maven中内置的隐藏变量: http://www.cnblogs.com/quanyongan/category/471332.html Maven提供了三个隐式的变量可以用来访问环境变量,POM信 ...
- WC2019游记 && 课件
WC2019 游记 课件 wc2019.zip_免费高速下载|百度网盘-分享无限制 提取码: un6z day 0 打飞机去广州... 在飞机上刷了爱乐(le)之城, 相当好看... 广二好大! 哈三 ...
- 洛谷 P1538 迎春舞会之数字舞蹈
题目背景 HNSDFZ的同学们为了庆祝春节,准备排练一场舞会. 题目描述 在越来越讲究合作的时代,人们注意的更多的不是个人物的舞姿,而是集体的排列. 为了配合每年的倒计时,同学们决定排出——“数字舞蹈 ...
- 英特尔DRM内核驱动程序默认启用PSR2省电功能
导读 英特尔DRM/KMS内核驱动程序很快就会启用PSR2面板自刷新功能,以便在英特尔支持的超极本/笔记本电脑上实现更多节能. 一段时间以来,英特尔的Direct Rendering Manager驱 ...
- poj 2226 Muddy Fields(水二分图)
Rain has pummeled the cows' field, a rectangular grid of R rows and C columns (1 <= R <= 50, 1 ...
- spfa优化板子
用双端队列,当待加入元素小于队首元素时 加入队首, 否则 加入队尾 slf优化 if(!vis[e.v]) { if(Q.empty()) Q.push_front(e.v); else { if(d ...