Django|Django url反向解析的实现 2021-12-28 目录 1、代码中URL可以出现的位置 2、代码中URL书写规范 3、URL反向解析 4 案例 1、代码中URL可以出现的位置 一个是在HTML模板中,一个是在视图函数中: 1、模板【HTML】中 (1) 超链接 点击后页面跳转至URL (2) form表单中的数据,用post方法提交至URL 2、视图函数中 (1)302跳转 HttpResponseRedirect(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' 【Django|Django url反向解析的实现】浏览器会根据当前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中的reverse方法进行反向解析 from django.urls import reversereverse('别名',args=[],kwargs={})eg:reverse('pagen',args=[100])reverse('person',kwargs={'age':18,'name':'xixi'}) from django.urls import reverseurl = reverse('base_index')return HttpResponseRedirect(url) 4 案例 urls.py path('test/url', views.test_url),# 在『模板』test_url.html中通过‘tr'反向解析该路由path('test_url_result/', 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 测试url绝对地址带'/'的相对地址不带'/'的相对地址url反向解析 启动服务,浏览器输入:http://127.0.0.1:8000/test/url 鼠标点击后悬浮在对应连接上,可以看对应的绝对地址。 文章图片 到此这篇关于Django url反向解析的实现的文章就介绍到这了,更多相关Django url反向解析内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 推荐阅读 电商如何做项目管理经理,电商项目主管 阳姜怎么吃有什么功能 显示屏隔着纸箱摔倒会碎吗 玻璃饭盒会摔碎吗 2023年央视春晚周深参加吗 2021央视春晚周深 蚂蚱是怎么繁殖的 大雪养生的意思 大雪养生有“七宜”保健康 AndroidStdio小米手机安装APK失败 卧室婚纱照怎么挂好看 婚纱照怎么挂 杜比视界播放器,mac杜比视界播放器 不得不爱伴奏有歌词 不得不爱伴奏 非常难过、委屈、焦虑的一天 如何删除Word中的多余的空格 松下定速挂机空调显示e2是什么原因造成的 惊艳了我的科学训练 Re:《Unity|Re:《Unity Shader入门精要》13.3全局雾效--如何从深度纹理重构世界坐标 国内如何申请读博士生 国内如何申请读博,国内如何申请读博士 emui11|手机换机寿命榜出炉,小米垫底,华为未进前三,第一意料之中 微信红包2021封面免费领取 2023免费微信红包封面领取入口 猫为什么会突然在床上拉尿是生病了吗 猫为什么会突然在床上拉尿 苏州必打卡的景点 苏州最值得打卡的2个景点 django-前后端交互 django2.2|django2.2 一般项目步骤(初步) 113.|113. 【torch】反向传播弃inplace操作 django|django 自定义.save()方法 小程序开发|小程序开发 - 页面传值url类型 django|django 获取用户的域名 django开发电子商城(二十二)购物车商品的所有者身份转换 iOS开发中|iOS开发中 xml 数据请求 Django安装mysql Android将文本中的URL转换为超链接工具类(原文本有超链接标签也适用)