首页 > 作文

Django url反向解析的实现

更新时间:2023-04-04 07:55:49 阅读: 评论:0

目录
1、代码中url可以出现的位置2、代码中url书写规范3、url反向解析4 案例

1、代码中url可以出现的位置

一个是在html模板中,大学学习计划一个是在视图函数中:

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

2、代码中url书写规范

(1)绝对地址
eg: http://127.0.0.1:8000/page/1
(2)相对地址

‘/’ 开头的相对地址 eg: ‘/page/3′

浏览器会把当前地址栏里的协议、ip、端口加上这个地址,作为最终访问地址。
例如:当前页面地址为:http://127.0.0.1:8000/page/1; 相对地址为 ‘/page/3′ ;则最终访问地址为:http://127.0.0.1:8000 + /page/3

不带 ‘/’ 开头的相对地址 eg: ‘page/3′

浏览器会根据当前url的最后一个/之前的内容,加上该相对地址作为最终访问地址。
例如:当前页面地址为:http://127.0.0.1:8000/topic/detail; 相对地址为 ‘page/3′ ;则最终访问地址为:http://127.0.0.1:8000/topic/ + /page/3

3、url反向解析

(1)定义

url反向解析是指在视图模板中,用path定义的名称来动态查找或计算出相应的路由。
path函数语法:
path(route, views, name=‘别名’)

根据path中的关键字name传参给url确定了唯一确定的名字,在模板或视图中,可以通过这个名字反向推断出此url信息。从而避免了在模板或视图中写绝对或相对路径。

(2)使用方式

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

{% url '别名'%}{% url '别名'% '参数值1' '参数值2'}eg:{% url 'pagen' '100' %}{% url 'person' age='18' name='xixi'%}

视图函数中 – 可调用django中的rever方法进行反向解析

from django.urls import reverrever('别名',args=[],kwargs={})eg:rever('pagen',args=[100])rever('person',kwargs={'age':18,'name':'xixi'}) from django.urls import rever   url = rever('ba_index')   return httpresponredirect(url)

4 案例

urls可可听力网.py

path('test/url', view沧州交通学院s.test_url),# 在『模板』test_url.html中通过‘tr'反向解析该路由path('test_url_result/<int:age>', views.test_url_result, name='tr'),# 之前案例中的路由# 在「视图函数」test_url_result中通过rever反向解析该路由path('ba_index', views.ba_view, name='ba_index'),

views.py

def test_url(request):    return render(request, 'test_url.html')def test_url_result(request, age):    # 302跳铸剑鲁迅转    from django.urls import rever    # 通过rever反向解析该路由    url = rever('ba_index')    return httpresponredirect(url)    # return httprespon('--- test url is ok')   # 该方法直接return可以验证相对地址中带/ 和不到/的路由

templates/test_url.html

<!doctype html><html lang="en"><head>    <meta chart="utf-8">    <title>测试url</t东临碣石以观沧海itle></head><body><a href="http://127.0.0.1:8000/test_url_result" rel="external nofollow" >绝对地址</a><a href="/test_url_result" rel="external nofollow" >带'/'的相对地址</a><a href="test_url_result" rel="external nofollow" >不带'/'的相对地址</a><br><!-- 模板中,url方向解析使用案例--><a href="{% url 'tr' '100' %}" rel="external nofollow" >url反向解析</a></body></html>

启动服务,浏览器输入:http://127.0.0.1:8000/test/url
鼠标点击后悬浮在对应连接上,可以看对应的绝对地址。

到此这篇关于django url反向解析的实现的文章就介绍到这了,更多相关django url反向解析内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!

本文发布于:2023-04-04 07:55:35,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/9815920163023154436a8ccdc2459c4e.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:Django url反向解析的实现.doc

本文 PDF 下载地址:Django url反向解析的实现.pdf

标签:地址   视图   路由   模板
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图