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里面路由层 ...
随机推荐
- php分割中文字符串为数组的简单例子
近日在做东西时,遇到要把中文字符进行逐字分割,试了很多方法,都不行,后来发现了一个超简单的方法: 分割字符串很简单,主要是用到函数preg_match_all.当处理含有中文的字符串时,可以用如下的方 ...
- Python魔法方法(magic method)细解几个常用魔法方法(下)
接上文,再介绍最后几个常用的魔法方法. 关于__dict__: 先上个例子: class Test(object): fly = True def __init__(self, age): self. ...
- centos安装Tesseract
yum安装(推荐) yum search tesseract yum install tesseract.x86_64 -y pip3 install pytesseract pip3 install ...
- Kettle转换工具Windows版安装
一.简介 Kettle是一款国外开源的ETL工具,纯java编写,可以在Window.Linux.Unix上运行,绿色无需安装,数据抽取高效稳定. Kettle 中文名称叫水壶,该项目的主程序员MAT ...
- 一个加载时带动画效果的ListBoxItem
今天我们来谈一下ListBoxItem这个控件,ListBoxItem是直接从ContentControl继承而来的,所以可以添加到任何具有Content属性的控件中去,常见的ListBoxItem可 ...
- vue & iview
vue & iview ui components https://codepen.io/webgeeker/pen/EJmQxQ https://www.iviewui.com/docs/g ...
- 21.PHP实现Word/Excel/PPT转换为PDF
参考文档: https://www.cnblogs.com/woider/p/7003481.html http://blog.csdn.net/aoshilang2249/article/detai ...
- 关于 flask 实现数据库迁移以后 如何根据创建的模型类添加新的表?
在此之前 我们先说一下常规的flask运用第三方扩展来实现数据库的迁移的三个步骤以及每步的目的. 数据库的迁移的三个步骤:(cd 到run.py所在路径) python run.py db init ...
- MySQL列类型选择
比如年龄这个字段可以使用 1990-03-15 也可以用 19900315表示在列类型上可以选择 char 和 int:如果一个字段可以选择多种类型,尽量选择一个更快的类型:字段类型优先级 ...
- Announcing Windows Template Studio in UWP
今天,我们很高兴地宣布您的文件→新的通用Windows平台应用程序在Visual Studio - Windows模板工作室中的下一个演变.Windows Template Studio在开发人员调查 ...