美文网首页django
Django-08 url反向解析

Django-08 url反向解析

作者: JuliusL | 来源:发表于2021-07-11 09:07 被阅读0次

代码中url出现的位置

  1. 模板【html中】
    1. <a href='url'>超链接</a>
      点击后 页面跳转至url
    2. <form action='url' method='post'>
      form表单中的数据,用post方法提交至url
  2. 视图函数中 - 302跳转 HttpResponseRedirect('url')
    将用户地址栏的地址跳转到url

代码中url书写规范

  1. 绝对地址
    http://127.0.0.1:8000/page/1
  2. 相对地址
    1. '/page/1' - '/' 开头的相对地址,浏览器会把当前地址栏里的协议,ip和端口加上这个地址,作为最终可访问地址,即如果当前页面为http://127.0.0.1:8000/page/3;当前相对地址最终结果为http://127.0.0.1:8000 + /page/1
    2. 'page/1' - 没有 '/' 开头的相对地址,浏览器会根据当前url的最后一个 / 之前的内容加上该相对地址作为最终访问地址,例如当前地址栏地址为http://127.0.0.1:8000/topic/detail;则该相对地址最终为http://127.0.0.1:8000/topic + page/1

测试用例:

def test_url(request):
    return render(request,'test_url.html')

def test_url_result(request):
    return HttpResponse('test url is ok')
<body>
<a href='http://127.0.0.1:8000/test_url_result'>绝对地址</a>
<a href='/test_url_result'>带'/'的相对地址</a>
<a href='test_url_result'>不带'/'的相对地址</a>
</body>

url反向解析

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

  • path(route,views,name='别名')
  • path('page',views.page_view,name='page_url')
根据path中的'name='关键字传递给url确定了个唯一确定的名字,在模板或视图中,可以通过这个名字反推出此url信息

模板中-通过url标签实现地址的反向解析

{% url '别名' %}
{% url '别名' ‘参数1’ ‘参数2’ %}
ex:
{% url 'pagen' '400' %}
{% url 'person' age='18' name='gxn' %}

urls.py

path('test_url_result/<int:age>',views.test_url_result,name = 'tr'),

在视图函数中 -> 可调用django中的reverse方法进行反向解析

from django.urls import reverse
reverse('别名',args=[],kwargs={})
ex:
print(reverse('pagen',args=[300]))
print(reverse('person',kwargs={'name':'xixi','age':18}))
def test_url_result(request,age):
    from django.urls import reverse
    url = reverse('base_index')
    return HttpResponseRedirect(url)

tips:302跳转是根据响应头里的locatioon标记的地址进行跳转

相关文章

  • Django-08 url反向解析

    代码中url出现的位置 模板【html中】 超链接 点击后 页面跳转至url form表单中的数据,用post方法...

  • Django-4模板

    反向解析,根据规则生成url,所以namespace是可以用于解析. 自动生成url所以url改变也不用更改模板了...

  • URL 反向解析

    URL正向解析:有客户端的浏览器发起一个url请求,Django根据URL解析,把url中的参数捕获,调用相应的试...

  • url反向解析

    name1 是项目urls配置中 include(('应用名.urls', '应用名'), namespace=...

  • django

    from django.core.urlreolvers import reverse 反向解析url,具体用法可...

  • URL的反向解析

    步骤: 1:在项目的urls.py中加入namespace2:在app是urls.py中加入app_name和na...

  • django02-url和模板

    Day02 url和模板 1. URL 2. 反向解析 3. 模板 模版继承和bootstrap的使用

  • django中URL反向解析总结(url/reverse/get

    前言介绍 Django中进行URL反向解析一般有以下三种方式 在模板中使用 {% url 'blog:detail...

  • 3、url_for反向解析

    作用:url_for获取蓝图里面函数的动态路径 用法: res = url_for("蓝图的名字.函数的名字"[,...

  • django的url反向解析

    在django项目开发中,最常见的一个需求是获得url的最终形式,以用于嵌入到生成的内容中或者是views中,或者...

网友评论

    本文标题:Django-08 url反向解析

    本文链接:https://www.haomeiwen.com/subject/ipshpltx.html