前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >django学习-day04

django学习-day04

作者头像
kirin
发布2020-05-09 15:30:12
3210
发布2020-05-09 15:30:12
举报
文章被收录于专栏:Kirin博客

#模板结构优化 #dl1项目中muban app有演示 1.模板引入 include 标签 方法使用起来很简单,就是分别吧不同的模板存在tmplates中 需要使用到模板的时候直接用 {% include ‘模板名字’%}就可以直接调用模板在浏览器中渲染了,提高了模板的复用性, {% include ‘header.html’ %} <div class=”class”>这里是学校中间部分的内容</div> {% include ‘footer.html’ %} 其中header.html和footer.html 是分别建立在tmplates中的两个模板,他们没有初始化html代码,

模板代码是非常简介的,提高了易用性可读性 header模板如下 <header> <ul> <li><a href=”/”>首页</a></li> <li><a href=”{% url ‘muban:company’ %}”>公司</a></li> <li><a href=”{% url ‘muban:school’ %}”>校园</a></li> <li><a href=”#”>首页</li> </ul> </header> footer代码如下 <footer> 这里是footer部分 </footer> 如果遇到需要传递参数的话,这个时候就需要用with传递一个参数进去,标题部分就不会为空了,因为开始给的参数 def index(request): t={‘value’:’科技’} 只有首页是给了参数的,这个时候用了include的话其他页面school,company,使用了value这个变量的话就会获取不到,上边说了,开始给的变量只给了muban.html,而没有给其他的html文件,所以需要手动传参 return render(request,’muban.html’,context=t) def company(request): return render(request,’company.html’) def school(request): return render(request,’school.html’) {% include ‘header.html’ with value=’科技’%} <div class=”class”>这里是公司中间部分的内容</div> {% include ‘footer.html’ %}

2.模板继承 类似于类的继承 这个base.html里面就是html的代码,为了提高复用性,所以把他作为一个父模板使用,后面直接在子html中用extends调用即可,如下 {% extends ‘base.html’%} 用extends 可以继承模板 如果同级目录下直接写html模板文件名即可,如不同级目录需要补充完整目录 extends 必须放在模板首航 你也可以在父模板中开放一个接口给子模板使用 {% block content %} 这个接口 {% endblock %}

接下来是类似于类的重写 重写的话也是很简单的,用extends 导入父模板后直接在附模板定义的block中 使用其同样的block名字即可实现重写 和python的类重写是一样的,优先取当前的值 子模板的html代码必须放在block块中间,否在浏览器不会渲染

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/02/27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档