7.url反向解析

目录

1  相对地址与绝对地址

2  url的反向解析

2.1  在模版中使用

2.2  在视图中使用


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={}

然后访问

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Suyuoa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值