Django--关于路由配置与模板层心得
- 路由配置与path转换器
settings文件中的ROOT_URLCONF指明了包含主路由配置列表(urlpatterns)的文件位置
url后第一个参数正则或非正则都可,前两条自配路由中,第二条是“万能路由”——跟前边所有路由均不匹配时会转到该路由,所以一定要注意万能路由的顺序,或者干脆就不写。(列表中匹配好一个路由后就会直接跳转,不会继续,即网页和路由是一对多的关系)
若不想要万能路由的话,按照正则的格式匹配空路由即可,即http://127.0.0.1:8000/
include函数
在实现一个项目时,经常会遇到分版块的思想,路由也可以分版块。如项目中有index版块,下有若干页面;有detail_table版块,下有若干页面……这是可以在根路由里用include函数,实现子路由的分流,例如有一个test版块:
可以将所有以test/开头的路由(如下图)转发到Xunlu/urls.py中处理,也就是项目的子路由,这时可以对其后缀进行处理,
注意带空参数‘’的url方法要放在路由列表的最后(所有路由和前边顺序均不匹配则会执行该方法,兜底方法)
若需要查询detail 1--100的详情,可考虑用path转换器只配置一个路由('detail/<int:pid>'),然后在视图中的方法加上一个接受值的参数,即可在方法中使用物品编号这个变量。(如果是商品,可通过编号查询数据库,将对应数据添加至html中)。
一个url方法中大多要用到正则表达式,正则命名规则就是为了解决多个用正则匹配到的字符串之间加以区分的问题,用(?P<name>)来实现,如,
- Django独有的MTV模式进行html渲染并返回
模型(model)、模板(template)、视图(view),M根据数据库的表建立相应模型,T负责html的渲染,V负责转发与分流(参考控制器)。Django也有微型的C模块,即路由配置列表。
路由列表中的第二个参数是该路由匹配成功后执行的视图中的哪个方法,下图为a1匹配成功后执行的textHtml方法
方法中通过loader、render等方法加载了testA1.html(render转换字符串,第二个字典参数可以动态覆盖模板中的{{}}块),再通过HttpResponse转发至浏览器,即为html渲染。
注:get_template中根据模板的路径通过settings配置
在django的视图层views中,一个方法并不会因为return HttpResponse的结束而结束,这就需要分支,并在最后传入return HttpResponse,如下图
- 反向解析url
路由列表中的name参数可以为路由起一个别名,例如一个路由name为tr
可通过{%url 路由名字 路由参数%}来反向解析,这样的好处是使路由可以灵活多变而不需要更改href中的内容。
- Django查找模板文件时的顺序问题
要注意项目中app文件夹下有总的template文件夹,此应用(XunLu)下也有template文件夹
这两个都可以作为模板文件
当APP_DIRS为true时,get_template等模板操作时会先查找app下的模板文件(template),找不到时才会查找DIRS数组中固定的模板文件(预先给数组中添加了当前项目(XunLu)的模板文件目录)。
Django--关于路由配置与模板层心得相关推荐
- django urls路由配置
学习django的路由配置时一般会用到两个函数path和re_path,re_path可以结合正则,在使用过程中我发现两个需要注意的点: 1.urls在查询路由的时候接收到的路由均是以字符串形式传递的 ...
- python之路_django路由配置及模板
URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表:你就是以这种方式告诉Django,对于这个URL调用这段代码,对于那个URL调 ...
- Django url路由配置的两种方法
前言 例如:Django是python提供的web框架,可以快速方便的搭起一个系统,而url配置也是学习Django的第一步. 提示:以下是本篇文章正文内容,下面案例可供参考 一.直接在总路由配置 二 ...
- html静态模板继承,Django框架(七)-- 模板层:模板导入、模板继承、静态文件...
一.模板导入 要复用一个组件,可以将该组件写在一个文件中,在使用的时候导入即可 在模板中使用 1.语法 {% include '模板名字' %} 2.使用 ad.html页面 Panel title ...
- Django(路由配置)
path()函数 导入 from django.urls import path 语法 path(route,views,name=None) 参数: 1.route:字符串类型,匹配的请求路径 2. ...
- Django之路由层
天行健,君子以自强不息 -周易 文章目录 路由层 一.路由层之路由匹配 1.什么是路由 2.路由匹配 URL( )方法 基本格式: 参数介绍: regex: view: kwargs name 示例: ...
- Django之路由层、视图层、模板层介绍
一.Django请求生命周期 1.路由层urls.py Django 1.11版本 URLConf官方文档 1.1 urls.py配置基本格式 from django.conf.urls import ...
- Day47 Django基础部分、路由配置、空间名称
1.最简单的路由配置 URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表:你就是以这种方式告诉Django,对于客户端发来的某个U ...
- Django之模板层
视图层后续: FBV与CBV FBV:是基于函数的视图 我们前面写视图都是用函数写的,也就是FBV CBV:是基于类的视图 urls.py中: url(r'^login/',views.MyLogin ...
最新文章
- kubectl技巧之通过go-template截取属性
- Flink流计算WordCount代码示例
- usb深度检查 清理_巴南区清理化粪池工程队价格合理2020
- 密码学系列之:内容嗅探
- 开始学java咯!~~~
- linux让脚本在指定时间运行程序,如何限制Linux命令程序运行的时间
- 众咖齐聚!2018智能汽车跨界融合高峰论坛开幕在即
- 新版易支付源码支持即时到账功能
- springboot + vue项目跨域请求解决方案
- 控制項學習四(屬性與事件)
- 选择CA厂商的加密证书
- MySQL数据表查询操作
- 帆软 JS给填报控件(单元格)赋值 包含扩展单元格赋值
- win10系统怎么改奇摩输入法_Yahoo!奇摩輸入法 1.1.2535 for Windows (32-bit) : 軟體王 2020 - 軟體資訊...
- Visual Studio中#includestdafx.h的作用
- 项目质量监测(三)e2e test端到端测试——单元测试和端到端测试 e2e test工具-Cypress Nightwatch TeatCafe Codecov-测试结果可视化
- 花生壳:将内网端口映射到外网
- logback日志配置说明
- 宇言(四):关于时间循环
- c++ 常用总结(三)