当前位置: 首页 > news >正文

有什么专业做心理的网站今日头条十大热点

有什么专业做心理的网站,今日头条十大热点,csgo翻硬币网站开发,网站销售Django05_反向解析 5.1 反向解析概述 随着功能的不断扩展,路由层的 url 发生变化,就需要去更改对应的视图层和模板层的 url,非常麻烦,不便维护。这个时候我们可以通过反向解析,将 url解析成对应的 试图函数 通过 path…

Django05_反向解析


5.1 反向解析概述

随着功能的不断扩展,路由层的 url 发生变化,就需要去更改对应的视图层和模板层的 url,非常麻烦,不便维护。这个时候我们可以通过反向解析,将 url解析成对应的 试图函数

通过 path或re_path 中 的name属性进行解析
反向解析一般用在模板中的超链接及视图中的重定向

在之前内容中,如果需要在后台中去获取某个url地址的话是需要我们自己进行设置的:

def login(request):# 获取get请求参数用这个# name = request.GET.get('name')# pwd = request.GET.get('pwd')# print(name, pwd)# 获取post请求参数用这个name = request.POST.get('name')pwd = request.POST.get('pwd')print(name, pwd)if name == '张三' and pwd == '1234':return redirect('/app01/index/')  # 重定向return render(request, 'login.html')

对于这部分重新跳转的代码: return redirect('/app01/index/') # 重定向,如果项目逐渐变大,那么这样就不太方便了(需要去记住很多的跳转路径,可能会出现了问题不好找到)
所以我们可以在一开始就为这些url起一个别名,在下次需要使用这个url的时候,可以直接使用这个变量名就可以了
image-20230729015500148

在路由分发的时候,加上一个name参数
可以在需要使用的时候直接通过name来使用这个url

例:我们需要在后端中来使用这个login_tz地址:

def login(request):name = request.POST.get('name')pwd = request.POST.get('pwd')print(name, pwd)if name == '张三' and pwd == '1234':# 在后端中反向解析 url 地址print(reverse('login_tz'))login_path = reverse('login_tz')# return redirect('/app01/index/')  # 重定向return redirect(login_path)  # 重定向return render(request, 'login.html')

image-20230729015546450
跳转成功
image-20230729015526158
例:在前端中去使用

<form action="{% url 'login' %}" method="post">...
</form>

{% url 'login' %}是Django的模板标签,用于反向解析的固定写法,在之后会讲到

5.2 命名空间

如果我存在多个app子应用,那么可以不存在两个一样的url别名?

是可以的,比如:qq、微信等登陆

如果都需要使用login来进行命名,又是怎样来说区分出别名到底对应了哪一个app?

这里就需要用到命名空间,主要是配合url反向解析使用,多个不同的urls文件中配置同名的 name,
为了进行区分,给不同的urls进行不同的命名namespace(可以认为为app又起一个别名)
切记同一个项目下命名空间不能重复!

写法如下:

注意:

  1. 这里的写法include('app01.urls', 'app01')一定一定不要写错了
  2. include里面有一个元组,元组里面依此填内容
  3. 第1个参数'app01.urls'是app下面url地址
  4. 第2个参数'app01'就是我们为app01这个子应用起的别名(namespace)

!!需要注意在使用 include路由分发的时候,如果在子应用使用了反向解析,那么 include路由分发时写法如下:

image-20230731022943133

后端取值:

def login(request):name = request.POST.get('name')pwd = request.POST.get('pwd')print(name, pwd)if name == '张三' and pwd == '1234':print(reverse('app01:login_tz'))login_path = reverse('app01:login_tz')return redirect(login_path)  # 重定向return render(request, 'login.html')
  1. 有include的反向解析,需要加上app别名
  2. 格式:namesapce:name

前端取值(和后端一样):

<form action="{% url 'app01:login_tz' %}" method="post">...
</form>

拓展——反向解析时包含正则匹配

如果在反向解析的时候,遇到的是含正则表达式的有分组匹配的
需要为你的reverse多传一个参数

# 无名分组用 args
print(reverse('login_tz', args=(12,)))# 有名分组用 kwargs
print(reverse('login_tz', kwargs={'y': 112}))

在前端中,也是这样进行操作,不过不用区分无名分组与有名分组

<form action="{% url 'login_tz' 12 %}" method="post">...
</form>
http://www.15wanjia.com/news/18920.html

相关文章:

  • 嘉鱼网站建设哪家专业如何开发一个软件平台
  • 大通网站建设百度seo排名优化教程
  • 贵阳学网站建设无代码免费web开发平台
  • 中国建设银行网站类型分析电脑培训网上课程
  • 成都网站建设多少费用网站优化方案怎么写
  • 营销网站的基本要素周口网站seo
  • 中国园林网什么是网站推广优化
  • 跨境电商到什么网站做html家乡网站设计
  • .net空网站做九九乘法表网络营销到底是个啥
  • 龙岗网站制作公司一般多少钱互联网销售平台
  • 微信网站怎么做的好名字吗百度公司怎么样
  • 锦州网站制作公司seo什么意思简单来说
  • 合肥比较好的网站建设公司山西seo推广
  • 合肥网站优化 新浪博客软文写作的基本要求
  • 徐州建设网站希爱力双效片的作用与功效
  • 最新新闻热点事件2022年1月seowhy
  • 怎样快速学好网站建设手机优化软件哪个好用
  • 做内容网站 用什么模版江门网站优化公司
  • 北京网站建设网培训学校管理系统
  • 有知道做网站的吗昭通网站seo
  • 吉林市做网站网络销售员每天做什么
  • 博天网站建设网络seo查询爱站网
  • 西安做网站-西安网站建设-西安网站制作-西安网络公司_千秋网络百度公司官网招聘
  • 兴仁企业建站公司自己想开个网站怎么弄
  • 重庆大渡口网站建设解决方案媒体广告投放平台
  • 武汉成交型网站建设外贸营销网站建设介绍
  • 莆田网站制作网络推广计划制定步骤
  • 网站建设按钮精准ip地址查询工具
  • 网络制作软件岳阳seo快速排名
  • 企业网站哪里可以做搜索引擎关键词怎么选