7.url反向解析

目录

1 相对地址与绝对地址

2 url的反向解析

2.1 在模版中使用

2.2 在视图中使用

1 相对地址与绝对地址

我们先回忆一下之前学习中,使用url的几个地方

7.url反向解析

我们在写url的使用有这样几种写法

  • 绝对地址,如:https://127.0.0.1:8000/page 写绝对地址的时候不要忘了写协议
  • 带斜杠的相对地址 /page 这样它会访问到端口加/page,与我上一个浏览的页面没有关系,如果我的IP和端口是127.0.0.1:8000,那么它无论怎么操作就会访问127.0.0.1:8000/page
  • 不带斜杠的相对地址 page 这样它会访问到上一个路由最后的斜杠处+page,比如我上一个浏览的页面是127.0.0.1:8000/test/sth,那么她就会访问到127.0.0.1/test/page

我们测一下这三种方法,首先我们创建一个html文件,名为test_url

7.url反向解析

然后我们我们搞两个视图,一个是直接接上面的html的,另一个是返回固定字符串

7.url反向解析

之后我们写上面两个视图相对的路由

7.url反向解析

我们首先访问中转页

7.url反向解析

然后点击绝对地址,发现访问的就是我们期望的地址

7.url反向解析

之后后退,点击带斜杠的相对地址

7.url反向解析

最后点击不带斜杠的相对地址

7.url反向解析

发现它的地址就是与最后一个斜杠拼接过的地址

; 2 url的反向解析

url反向解析是指再视图或模版中,用path定义的名称来动态查找或计算出相应的路由,和我们之前提到的path中的name参数有关

7.url反向解析

2.1 在模版中使用

我们可以在模版中使用url标签实现反向解析

7.url反向解析

我们测试一下,先到urls.py中给test_url_result一个别名

7.url反向解析
  • 一定要加name

然后我们再模版中加上url标签

7.url反向解析

这个时候我们访问一下中转页

7.url反向解析

然后点击一下 url的别名

7.url反向解析

那么如果现在我想用url传参数,我们先改路由

7.url反向解析
  • 不改这个路由是不行的

再改视图

7.url反向解析

然后在模版中加入我们要传入的参数

7.url反向解析
  • 在模版中传递的参数类型必须为字符串

之后我们访问中专页,然后点击 url别名

7.url反向解析

发现路径与显示都有所改动

2.2 在视图中使用

在视图中克调用django.urls中的reverse进行反向解析

7.url反向解析

别名还是在path中给,我们给中转页一个别名

这个一般配合302跳转的时候使用,我们现在新建一个视图

然后我们给这个视图加上路由

7.url反向解析

然后我们再访问url_reverse这个地址

7.url反向解析

发现跳转到了中转页

7.url反向解析
  • 302跳转是根据响应头中的location判断要跳转到哪里

下面我们看一下怎么给参数,我们在视图中就加入args=[]

7.url反向解析

然后访问

7.url反向解析

或者使用kwargs={}

7.url反向解析

然后访问

7.url反向解析

Original: https://blog.csdn.net/potato123232/article/details/122804955
Author: Suyuoa
Title: 7.url反向解析

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/734776/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球