django第7天模板

include标签

模板的共用
a 模板需要到使用到 登陆界面
b 模板需要使用到 登陆界面
可以把登陆界面提取到公共的模板c 为什么要用:
都需要使用相同的界面,减少代码冗余 公共的模板c
html文件
<div class = "login">
详细代码
</div>
css文件
.login{
具体的css样式
} 然后在 a模板和b模板中加载模板c和其样式
<link rel = 'stylesheet' herf='/static/css/login.css'
{% include 'c模板名' %}

inclusion_tag自定义标签

不是完全相同的模块,因为模块的细节不是完全一致,而是模块有相似的结构

自定义inclusion_tag
首先是tag,故跟自定义tag类似
在app文件夹下新建templatetags包!!!!,
在该文件夹下新建一个blog_tags.py文件
from django.template import Library
register = Library() @register.inclusion_tag('public_tag.html',name="h_list")#打开哪个页面,将list传给这个页面,起了别名后,原来的函数名就不起作用了,只能使用别名
def header_list(list):
return {'list':list} 公共模块
public_tag.html
<ul class="public_tag">
<!-- 公用页面板块的详细html代码 -->
{% for foo in list %}
<li>{{ foo }}</li>
{% endfor %}
</ul> 模块a
{% load blog_tags %}
{% with [1, 2, 3, 4, 5] as list %}
{% h_list list %}
{% endwith %} 模块b
{% load blog_tags %}
{% with [10, 30, 50] as list %}
{% h_list list %}
{% endwith %}

母版

前提:多个页面的多个板块相同或相似,只有少部分是自己独有的,将共有的部分全部提出封装,包含了页面大部分结构,所以我们称其母版

如何应用:
1.先封装母版:大部分板块相同 相似的base.html,在特定的位置留出对应的block的接口,如果有自身样式,需要留出样式block
2.每个需要运用母版页面的页面来继承母版
{% extends "base/base.html" %}
3.在自身页面中的任意位置书写block中自身独有的页面内容
{% block right %}
<ul>
<li>hah</li>
<li>hah</li>
<li>hah</li>
</ul>
{% endblock %}
4.如果需要继承母版block中原有的内容
{{block.super}} 母版
{% block right %} 子模块
#继承母版结构
{% extends "base/base.html" %}
#定义自己的独特部分
{% block right %}
<ul>
<li>hah</li>
<li>hah</li>
<li>hah</li>
</ul>
{% endblock %} 继承母版block中原有的内容
{{block.super}}

最新文章

  1. http请求的开销
  2. Linux各版本的本地root密码破解方法
  3. Poj OpenJudge 百练 Bailian 1008 Maya Calendar
  4. jpGraph的应用及基本安装配置 BY 命运
  5. hdoj 1061 Rightmost Digit【快速幂求模】
  6. android style=&quot;@[package:]style/style_name&quot; ----------styles.xml
  7. resin-pro-4.0.34 服務器在windows环境下的配置
  8. [日常] Codeforces Round #440 Div.2 大力翻车实况
  9. eclipse 的缓存问题
  10. mongos-sharding连接池配置
  11. Qt做发布版,解决声音和图片、中文字体乱码问题(需要在main里写上QApplication::addLibraryPath(&quot;./plugins&quot;)才能加载图片,有图片,很清楚)
  12. [转]Ubuntu 16.04安装有道词典
  13. 2018-2019-1 20189221 《Linux内核原理与分析》第六周作业
  14. 2018年9月28日CCPC秦皇岛站参赛总结
  15. aaronyang的百度地图API之LBS云与.NET开发 Javascript API 2.0【把数据存到LBS云1/2】
  16. 【sql进阶】查询每天、每个设备的第一条数据
  17. Mac下进行基于java服务端语言的微信公众号本地js-sdk调试的大致方法
  18. 待字闺中之快排单向链表;leetcode之Sort List
  19. windows之死活格式化不了D/E/F盘
  20. BZOJ 3594 [Scoi2014]方伯伯的玉米田(二维树状数组)

热门文章

  1. php设计模式学习之单例模式
  2. MyBatis框架的XML数据访问Dao层接口的组合使用
  3. Solr6+IKAnalyzer分词环境搭建
  4. 使用Intellij IDEA搭建一个简单的Maven项目
  5. scrapy安装遇到的Twisted问题
  6. JS实现的图片预览功能
  7. 慢慢积累遇到的linux指令
  8. rpm包的安装方法
  9. hihoCoder #1162 : 骨牌覆盖问题&#183;三 (矩阵快速幂,DP)
  10. 51nod 1174 区间中最大的数(送盾题)