博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Django反正解析路由
阅读量:4655 次
发布时间:2019-06-09

本文共 1656 字,大约阅读时间需要 5 分钟。

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

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

使用范围

  模板超链接

  视图方法重定向

 

 

使用方法

 

首先要在路由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为参数#} 反响解析

 

 

第二种方法指定参数进行传参

 

路由文件

urlpatterns = [    path('',TemplateView.as_view(template_name='index.html')),    #反响解析 keyargs  使用参数指定<>内为key 其后为要匹配的value        参数指定命名    re_path('^test_dict_(?P
.+?)$',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'})))

模板 超连接跳转

{
# 第一个参数应用名称 值为参数自定义命名 参数要进行指定 #}反响解析(keyargs)

 

 

 在写好相应的视图方法接收相应参数即可

#定义接口返回数据class ReturnText(View):    def post(self,request):        #接收参数        username = request.POST.get('username','未收到')        return HttpResponse('接收到的是'+username)

 

 

 

  

 

转载于:https://www.cnblogs.com/Niuxingyu/p/10531595.html

你可能感兴趣的文章
nodejs初体验
查看>>
C# 将DataTable表中的数据批量插入到数据库表中的方法
查看>>
前博客 http://bbs.landingbj.com/mytopic.jsp?action=mytopic&username=57071
查看>>
edgeR使用学习【转载】
查看>>
2018徐州网络赛H. Ryuji doesn't want to study
查看>>
nodejs REPL清屏
查看>>
Io流笔记
查看>>
仿照tomcat服务器
查看>>
(转载)php中$_SERVER[PHP_SELF] 和 $_SERVER[SCRIPT_NAME]之间的区别
查看>>
[转]YII2 常用数据库操作
查看>>
Python基础检测:20171105
查看>>
...
查看>>
C#——调试
查看>>
总结和预告
查看>>
selenium 学习笔记 ---新手学习记录(6) 问题总结(java)
查看>>
为本地项目建立版本管理
查看>>
团队项目作业-Beta版本发布
查看>>
STL略观——deque的中控器和迭代器
查看>>
关于Java深度克隆和浅度克隆的简单说明
查看>>
tensorflow training result
查看>>