Django url反向解析的定义是什么,使用方式是怎样
Admin 2022-05-25 群英技术资讯 297 次浏览
一个是在HTML模板中,一个是在视图函数中:
1、模板【HTML】中
(1) <a href='URL'>超链接</a> 点击后页面跳转至URL
(2) <form action='URL' method='post'> form表单中的数据,用post方法提交至URL
2、视图函数中
(1)302跳转 HttpResponseRedirect(URL) 将用户地址栏中的地址跳转到URL
(1)绝对地址
eg: http://127.0.0.1:8000/page/1
(2)相对地址
浏览器会把当前地址栏里的协议、Ip、端口加上这个地址,作为最终访问地址。
例如:当前页面地址为:http://127.0.0.1:8000/page/1; 相对地址为 ‘/page/3' ;则最终访问地址为:http://127.0.0.1:8000 + /page/3
浏览器会根据当前URL的最后一个/之前的内容,加上该相对地址作为最终访问地址。
例如:当前页面地址为:http://127.0.0.1:8000/topic/detail; 相对地址为 ‘page/3' ;则最终访问地址为:http://127.0.0.1:8000/topic/ + /page/3
(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中的reverse方法进行反向解析
from django.urls import reverse reverse('别名',args=[],kwargs={}) eg: reverse('pagen',args=[100]) reverse('person',kwargs={'age':18,'name':'xixi'}) from django.urls import reverse url = reverse('base_index') return HttpResponseRedirect(url)
urls.py
path('test/url', views.test_url), # 在『模板』test_url.html中通过‘tr'反向解析该路由 path('test_url_result/<int:age>', views.test_url_result, name='tr'), # 之前案例中的路由 # 在「视图函数」test_url_result中通过reverse反向解析该路由 path('base_index', views.base_view, name='base_index'),
views.py
def test_url(request): return render(request, 'test_url.html') def test_url_result(request, age): # 302跳转 from django.urls import reverse # 通过reverse反向解析该路由 url = reverse('base_index') return HttpResponseRedirect(url) # return HttpResponse('--- test url is ok') # 该方法直接return可以验证相对地址中带/ 和不到/的路由
templates/test_url.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>测试url</title> </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
鼠标点击后悬浮在对应连接上,可以看对应的绝对地址。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
尾递归是函数返回最后一个操作是递归调用,则该函数是尾递归。本文将介绍Python是如何实现尾递归优化的,感兴趣的小伙伴可以跟随小编一起学习一下
玫瑰花图是节理统计方式之一,方法简便,形象醒目,比较清楚地反映出主要节理的方向,有助于分析区域构造。本文将用Python绘制好看的玫瑰花图,感兴趣的可以了解一下
这篇文章主要介绍了python返回函数和匿名函数的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
这篇文章主要介绍了Python如何利用opencv实现手势识别,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙可以参考一下
这篇文章主要介绍了Python解析CDD文件的方法,使用Python 脚本解析CDD文件,统一定义,一键生成,十分快捷,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008