【django】路由命名和路由反向解析
在 Django 项⽬中,⼀个常⻅需求是获取最终形式的 URL,⽐如⽤于嵌⼊⽣成的内容中(视图和资源⽹址,给⽤户展示⽹址等)或⽤户服务器端的导航处理(重定向等)。
强烈建议不要硬编码 URL(这是⼀个费⼒、不能扩展、容易出错的主意)。同样危险的是设计临时机制来⽣成的 URL 与URLconf描述的设计的URL⼀样,这会导致URL 随着时间的推移变得过时。
换句话说,需要的是 DRY 机制。除其他优势外,它还允许 URL 设计⾃动更新,⽽不必遍历所有项⽬代码来搜索和替换过时的 URL 。
Django 提供执⾏反转 URL 的⼯具,这些⼯具与需要 URL 的不同层匹配:
在模板⾥:使⽤ url 模板标签。
在 Python 编码:使⽤ reverse() 函数。
一、路由命名
在定义路由的时候,可以为路由命名,⽅便查找特定视图的具体路径信息。
1、 在定义普通路由时,可以使⽤name参数指明路由的名字,如
根路由:
urlpatterns = [path('admin/', admin.site.urls),path('film/',include('film.urls')),
]
子路由
# 查询所有影⽚信息
urlpatterns = [ path('filmlist/',views.filmList,name='film-list')
]
视图:
def loginview(request):url=reverse('film-list')print(url)return HttpResponseRedirect(url)def otherview(request):return HttpResponse('vip——film')
访问url:
http://127.0.0.1:8000/film/login/
重定向后的url:
http://127.0.0.1:8000/film/filmlist/
执行过程:
a、输入url(http://127.0.0.1:8000/film/login/),进行主路由、子路由寻址,
b、寻址成功调用loginview视图函数
c、执行url=reverse(‘film-list’),找到路由中的’film-list’,根据film-list,返回url(url:/film/filmlist/)
注意:函数中的参数:film-list,和路由中的参数保持一致
d、重定向HttpResponseRedirect(url),调用视图函数otherview,返回响应结果
2、传递参数的情况(uname)
需要在reverse函数中传递args=['参数']
子路由:
urlpatterns = [path('login/',views.loginview),path('filmlist/<uname>',views.otherview,name='film-list')
]
视图:
def loginview(request):url=reverse('film-list',args=['kb'])print(url)return HttpResponseRedirect(url)def otherview(request,uname):return HttpResponse('vip——film--%s'%uname)
【django】路由命名和路由反向解析相关推荐
- Django视图之介绍、项目准备、URL、路由命名、reverse反解析和Postman测试
知识点: HttpRequest 位置参数和关键字参数 查询字符串 请求体:表单数据,JSON数据 请求头 HttpResponse HttpResponse JsonResponse redirec ...
- 11.14 尚品汇 day01 脚手架,路由命名,路由跳转,传参,props传参,重写push,replace
less使用 npm i less npm i less-loader 安装easy less 1)要求 1.1:每一天老师书写代码务必三遍 1.2:node + webpack + VScode + ...
- Django视图层:URL的反向解析(主路由include之namespace,子路由之name,模板标签{%url%},视图reverse()函数,反向解析示例,URL命名空间
一.视图层The view layer Django 具有 "视图" 的概念,负责处理用户的请求并返回响应. 二.URL反向解析Reverse resolution of URLs ...
- Django(5)-路由配置实例
Django(1)-简介 Django(2)-创建项目及默认项目目录结构介绍 Django(3)-配置文件详解 Django(4)-URL和视图 Django(5)-路由配置实例 Django(6)- ...
- python动态映射_Python Django框架url反向解析实现动态生成对应的url链接示例
本文实例讲述了Python Django框架url反向解析实现动态生成对应的url链接.分享给大家供大家参考,具体如下: url反向解析:根据url路由规则,动态生成对应的url链接 (防止硬编码). ...
- django ajax 更新表格_Django(反向解析,路由分发、名称空间、视图层、虚拟环境、Django版本、json,CBV)...
https://www.zhihu.com/video/1249117508688711680 每日测验 """ 今日考题 1.列举你知道的orm数据的增删改查方法 2. ...
- djang urls.py 无名有名分组,反向解析,路由分发,名称空间,伪静态,虚拟环境,django版本...
路由层 路由匹配:APPEND_SLASH = False , 取消自动补全 , settings.py 中添加字段即可 若url尾部为书写/ , django内部会自动补全 urls.py 中 对应 ...
- Django学习之路由分发和反向解析
原 Django学习之路由分发和反向解析 2018年07月12日 14:04:55 huangql517 阅读数 519 1>路由分发 我们之前学习的路由配置都是在项目的全局控制文件(项目名称目 ...
- Web框架之Django_03 路由层了解(路有层 无名分组、有名分组、反向解析、路由分发 视图层 JsonResponse,FBV、CBV、文件上传)
阅读目录 一.路由层:(Django的路由系统) 二.伪静态网页和虚拟环境: 三.FBV与CBV.JsonResponse.文件上传 一.路由层:(Django的路由系统) URL配置(Django项 ...
最新文章
- jdk8新特性 lambda表达式详解
- EOJ Monthly 2018.1
- 《1---关于解决MySQL在控制台插入中文乱码问题》
- 马斯克的火箭,这次没!爆!炸!
- antd option宽度自适应_Web移动端实现自适应缩放界面的方法汇总
- RSA的密钥把JAVA格式转换成C#的格式
- 数据结构题:根据所给权值设计相应的哈夫曼树,并设计哈夫曼编码
- so库文件控制导出符号
- C# PPT转图片的解决方案
- 苹果背后的拼多多双11“农产品狂想曲”
- word 2016 无法输入中文 输入法失效 只能输入英文
- 华为路由器接口如何区分_华为路由器接口管理命令有哪些
- 在移动硬盘里移动视频文件到移动硬盘 另外一个文件夹 显示正在计算_移动硬盘也支持AES-256位硬件加密,希捷锦系列入手体验...
- RedisCluster如何高效率地批量插入数据
- CIKM 2021 | 淘宝多场景推荐排序模型ZEUS
- H.264编解码浅析
- POV-RAY基础教程 - POV-Ray坐标系(7)
- Objective-C Memory Management For Lazy People
- 3060笔记本推荐产品,游匣G15首当其冲
- 王咏刚《AI的产品化和工程化挑战》
热门文章
- oracle standby同步,ORACLE 利用rman增量备份同步standby库
- linux cisco路由器,怎样让linux做cisco路由器的专用日志服务器
- 城市需要建什么样的能源数据中心?
- 读懂 | 路由器简史
- 2017 全球超大规模数据中心已超过 390 个,中国仅占 8%
- 成功解决matplotlib绘图的时候,自定义横坐标和纵坐标刻度数值(调整坐标轴刻度间隔)
- Dataset:机器学习和深度学习中对数据集进行高级绘图(数据集可视化,箱线图等)的简介、应用之详细攻略——daidingdaiding
- 成功解决ValueError: too many values to unpack (expected 2)
- BigData:根据最新2018人工智能行业创新企业Top100名单,绘制AI地区热点图,一目了然,看清哪个是AI最热门城市,以及VC最AI的热门领域
- DL之DNN优化技术:利用Batch Normalization(简介、入门、使用)优化方法提高DNN模型的性能