首先要了解为什么要定义反响解析

  因为随着功能的增加会出先非常多的视图和对应的路由,有可能项目的一些需要一些模板需要重写路由,或之前配置的正则表达式不够准确,于是就要修改正则表达式,但是路由或正则表达式一旦进行修改,之前对应其的超链接都要进行修改这是一个非常麻烦的事情,路由过多的话更改过程会有一些被忘记更改,这里就反向解析的作用就起到了。

使用范围

  模板超链接

  视图方法重定向

使用方法

首先要在路由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反正解析路由的更多相关文章

  1. Django学习之路由分发和反向解析

    原 Django学习之路由分发和反向解析 2018年07月12日 14:04:55 huangql517 阅读数 519 1>路由分发 我们之前学习的路由配置都是在项目的全局控制文件(项目名称目 ...

  2. Django框架04 /模板相关、别名/反向解析/路由分发

    Django框架04 /模板相关.别名/反向解析/路由分发 目录 Django框架04 /模板相关.别名/反向解析/路由分发 1. 语法 2. 变量/万能的点 3 . 过滤器 4. 标签Tags 5. ...

  3. [Django框架之路由层匹配、有名 无名分组、反向解析、路由分发、名称空间、伪静态、本地虚拟环境、django版本区别]

    [Django框架之路由层匹配.有名 无名分组.反向解析.路由分发.名称空间.伪静态.本地虚拟环境.django版本区别] 路由层 路由即请求地址与视图函数的映射关系,如果把网站比喻成一本书,那路由就 ...

  4. django介绍及路由系统

    第一:Python的web框架介绍 Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引 ...

  5. Django之url路由

    Django之url路由 url路由介绍 url路由是关联url及其视图函数关系的过程. 作用就是使views里面处理数据的函数与请求的url建立映射关系 url路由配置 Django的url路由配置 ...

  6. Django中的路由配置简介

    Django中的路由配置简介 路由配置(URLconf)就是Django所支撑网站的目录.其实,我们利用路由交换中的"寻址"的概念去理解Django的路由控制会简单很多,它的本质就 ...

  7. Django 02 url路由配置及渲染方式

    Django 02 url路由配置及渲染方式 一.URL #URL #(Uniform Resoure Locator) 统一资源定位符:对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是 ...

  8. Django基础之路由(urls)层

    目录 Django基础之路由(urls)层 无名分组与有名分组 无名分组 有名分组 反向解析 前段解析 后端解析 无名分组反向解析 前段解析 后端解析 有名分组的反向解析 前段解析 后端解析 路由分发 ...

  9. Django的日常-路由层

    目录 Django的日常-2 路由层 有名分组和无名分组 反向解析 路由的分发 Django的日常-2 路由层 我们之前已经接触过路由层,只是我们可能不知道他叫这个名字,实际上在Django里面路由层 ...

随机推荐

  1. vue-router路由懒加载(解决vue项目首次加载慢)

    懒加载:----------------------------------------------------? 也叫延迟加载,即在需要的时候进行加载,随用随载. 为什么需要懒加载? 像vue这种单 ...

  2. Prism框架研究(三)

    这一篇主要用来介绍一下基于Prism Library中的核心服务以及如何配置Container,还有一个重要的部分是如何管理各个组件之间的依赖性,下面就这些内容来做一一的介绍. 1 Prism中的核心 ...

  3. vue element-ui 绑定@keyup事件无效

    解决办法: <el-input @keyup.native="ajax"></el-input> 加上.native覆盖原有封装的keyup事件即可

  4. thinkphp5 实现搜索分页能下一页保留搜索条件

    正常情况下: 搜索后分页了,点击第二页,进入页面之前的搜索条件没有了. 如代码 $keywords=$this->request->param('keywords'); $this-> ...

  5. hdu1878-并查集,欧拉回路

    纯裸题..写着方便理解... 题意:判断一个无向图是否存在欧拉回路... 解题思路:并查集判断一下是否联通,然后再判断一下点的度数是否为偶数就行了: #include<iostream> ...

  6. 【NLP】How to Generate Embeddings?

    How to represent words. 0 . Native represtation: one-hot vectors Demision: |all words| (too large an ...

  7. 【题解】K乘积

    题目描述 有N个数,每个数的范围是[-50,50],现在你要从这N个数中选出K个,使得这K个数的乘积最大. 输入格式 第一行,N和K. 1 <= N <= 50.  1 <= K & ...

  8. Matplotlib学习---用seaborn画联合分布图(joint plot)

    有时我们不仅需要查看单个变量的分布,同时也需要查看变量之间的联系,这时就需要用到联合分布图. 这里利用Jake Vanderplas所著的<Python数据科学手册>一书中的数据,学习画图 ...

  9. Peaceful Commission HDU - 1814(输出最小的一组解)

    Description 根据宪法,Byteland民主共和国的公众和平委员会应该在国会中通过立法程序来创立. 不幸的是,由于某些党派代表之间的不和睦而使得这件事存在障碍. 此委员会必须满足下列条件: ...

  10. 我的代码库-Java8实现FTP与SFTP文件上传下载

    有网上的代码,也有自己的理解,代码备份 一般连接windows服务器使用FTP,连接linux服务器使用SFTP.linux都是通过SFTP上传文件,不需要额外安装,非要使用FTP的话,还得安装FTP ...