目录
1 相对地址与绝对地址
我们先回忆一下之前学习中,使用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
然后我们我们搞两个视图,一个是直接接上面的html的,另一个是返回固定字符串
之后我们写上面两个视图相对的路由
我们首先访问中转页
然后点击绝对地址,发现访问的就是我们期望的地址
之后后退,点击带斜杠的相对地址
最后点击不带斜杠的相对地址
发现它的地址就是与最后一个斜杠拼接过的地址
; 2 url的反向解析
url反向解析是指再视图或模版中,用path定义的名称来动态查找或计算出相应的路由,和我们之前提到的path中的name参数有关
2.1 在模版中使用
我们可以在模版中使用url标签实现反向解析
我们测试一下,先到urls.py中给test_url_result一个别名
- 一定要加name
然后我们再模版中加上url标签
这个时候我们访问一下中转页
然后点击一下 url的别名
那么如果现在我想用url传参数,我们先改路由
- 不改这个路由是不行的
再改视图
然后在模版中加入我们要传入的参数
- 在模版中传递的参数类型必须为字符串
之后我们访问中专页,然后点击 url别名
发现路径与显示都有所改动
2.2 在视图中使用
在视图中克调用django.urls中的reverse进行反向解析
别名还是在path中给,我们给中转页一个别名
这个一般配合302跳转的时候使用,我们现在新建一个视图
然后我们给这个视图加上路由
然后我们再访问url_reverse这个地址
发现跳转到了中转页
- 302跳转是根据响应头中的location判断要跳转到哪里
下面我们看一下怎么给参数,我们在视图中就加入args=[]
然后访问
或者使用kwargs={}
然后访问
Original: https://blog.csdn.net/potato123232/article/details/122804955
Author: Suyuoa
Title: 7.url反向解析
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/734776/
转载文章受原作者版权保护。转载请注明原作者出处!