Django学习笔记:URL反向解析

2023-06-22 02:24:26哔哩哔哩

URL的书写规范

url常见于出现在以下几个地方:1.超链接的href 2.from的action 3.视图函数的HttpResponseRedirect(‘url’)


【资料图】

在相对地址的情况下,有两种解析方式:

第一种是以‘/’开的地址,比如说‘/page/1’,遇见这些url,浏览器就会在原来的协议+主机(或者域名)+端口后直接加入‘/url’,若当前地址是http://193.136.123.235:9999/toptic1/topic2/12,将会解析成http://193.136.123.235:9999/page/1

第二种是不以‘/’开头的地址,比如说是‘page/’,遇见这种url,浏览器会根据当前的url的最后一个‘/’之前的内容,直接加上url,若当前地址是http://193.136.123.235:9999/toptic1/topic2/12,将会解析成http://193.136.123.235:9999/toptic1/topic2/page/1

浏览器对地址的解析方式很重要,如果分析不好的话,页面跳转将混乱不堪甚至404

在绝对地址的情况下,以上的情况都会直接访问直接地址url

项目地址的容错性和可扩展性强一些,建议写相对地址,且建议写相对地址的第一种写法(以‘/’开头的url),最不容易出错误

URL的反向解析

一个项目的发展会出现多层次的服务,对应的url可能会更加复杂和冗长,为了解决这个问题,我们可以给url起别名,模板会反向解析别名来获取真实的url。

由于反向解析是动态的,无论url如何更改都可以通过name来反向解析出url出来。

要实现反向解析,第一步便是构造从name到url的映射

这里我们使用path来做绑定

path(url,views.xxx, name)

在模板中,可以通过 {% url 'name'%]来动态获取出url,若是要求实习‘url?a=1&b=2’的路径参数传递,则需要{% url 'name'  a='1' b='2'}来实现获取带参数的url

在视图函数中,也可以调用django的reverse的方法来反向解析获取url,特别是在302重定向的时候可以用到这一技术。

以上就是url的解析了,包括了浏览器的两种解析和模板以及视图函数的反向解析。

标签:

企业

泸州老窖披露第三季度报告 报告期实现营收58.6亿元
2023-01-09
详细行程
快递保价纠纷频发的背后 快递物流业保价规则亟需官方出面制定
2022-09-15
详细行程
重见天日!河南禹州瓦店遗址最新考古研究成果曝光
2022-08-05
详细行程