Django后端框架(四)URL相关补充

本文详细讨论了代码中URL的使用,包括HTML中的链接和表单提交,URL的绝对与相对路径,以及Django中的URL反向解析技术。介绍了如何在模板和视图函数中动态生成和使用URL地址。
摘要由CSDN通过智能技术生成

【代码中url出现位置】

  • 模板html中:
    1. <a href='url'>测试文本</a>:点击后页面跳转至url
    2. <form action='url' method='post'>:form表单中的数据用post方法提交至url
  • 视图函数中:302跳转,HttpResponseRedirect('url')将用户地址栏中的地址跳转至url

【代码中url书写规范】

  • 绝对地址:如,http://127.0.0.1:8000/page/1
  • 相对地址:
    1. '/'开头的相对地址(常用):浏览器会把当前地址栏的协议、ip和端口加上这个地址,作为最终访问地址。
    2. 没有'/'开头的相对地址:浏览器会根据当前url的最后一个'/'号+这个'/'号之前的内容+该相对地址,来作为最终访问地址。

举例:

当前地址栏中的地址为http://127.0.0.1:8000/topic/detail

(1)'/page/1':这是'/'开头的相对地址。

截取协议、ip和端口号:http://127.0.0.1:8000

加上相对地址,得到最终访问地址:http://127.0.0.1:8000/page/1

(2)'page/1':这是没有'/'开头的相对地址。

截取最后一个'/'号以及它前面的内容:http://127.0.0.1:8000/topic/

加上相对地址,得到最终访问地址:http://127.0.0.1:8000/topic/page/1

【url反向解析】

*url反向解析是指在视图或模板中,用path定义的名称来动态查找或计算出相应的路由。

*根据path(route, views, name="别名")中的别名传参给url确定了个唯一确定的名字,在模板或视图中,可以通过这个别名反向推断出此url信息。

  • 模板中的反向解析:通过url标签实现地址的反向解析
{% url '别名' %}
<!--当url地址中含有path转换器等包含参数时,可以在别名后面加上参数-->
{% url '别名' '参数值1' '参数值2' %}

<!--举例-->
{% url 'person' age='18' name='Cindy' %}
  • 视图函数中的反向解析:可调用Django中的reverse方法进行反向解析
from django.urls import reverse
reverse('别名', args=[], kwargs={})

# reverse('pagen', args=[300])
# reverse('person'.kwargs={'name':'Cindy', 'age':18})

# 举例
from django.urls import reverse
def test(request):
    url = reverse('base_index')
    return HttpResponseRedirect(url)  # 302跳转,浏览器由响应头Location得知应该跳转到哪个地址
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值