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}}

django第七天(模板的复用性,include标签和母版)的更多相关文章

  1. Django模版语言的复用 1. include标签--模版导入 2.inclusion_tag自定义标签--模版导入 3.母版

    include标签--模版导入 ''' 前提:项目中,往往会出现多个页面拥有一个或几个相同的页面版块,或是一个页面多个页面版块是相同的 如何运用:可以将多个样式标签的集合进行封装,对外提供版块的名字( ...

  2. django内置html模板的extends和include,模板标签{{ ex }}

    base.html内容 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...

  3. Django的templates(模板)

    目录 Django的templates(模板) 模板传值 模板过滤器 模板语法之标签 常用标签之for标签 常用标签之if标签 常用标签之with标签 自定义过滤器和标签 模板的继承和导入 模板的导入 ...

  4. 39.Python模板结构优化-引入模板include标签、模板继承使用详解

    在进行模板的构造时,不免有些模板的部分样式会相同,如果每一个模板都是重写代码的话,不仅在做的时候麻烦,而且在后期的维护上,也是相当的麻烦.所以我们可以将模板结构进行优化,优化可以通过:引入模板:模板继 ...

  5. Django框架(七)—— 模板层:变量、过滤器、标签、自定义标签和过滤器

    目录 模板层:变量.过滤器.标签.自定义标签和过滤器 一.模板层变量 1.语法 2.使用 二.模板层之过滤器 1.语法 2.常用过滤器 3.其他过滤器 三.模板值标签 1.for标签 2.if标签 3 ...

  6. Django框架——基础之模板系统(template文件夹)

    ---恢复内容开始--- 1. 常用语法 需要记住两组特殊符号:{{  }}  和 {%  %}. 在运用到变量的时候使用{{  }},如果是跟逻辑相关的话就使用{%  %}. 在Django模板(t ...

  7. day 68 Django基础四之模板系统

      Django基础四之模板系统   本节目录 一 语法 二 变量 三 过滤器 四 标签Tags 五 模板继承 六 组件 七 自定义标签和过滤器 八 静态文件相关 一 语法   模板渲染的官方文档 关 ...

  8. day 54 Django基础四之模板系统

    Django基础四之模板系统   本节目录 一 语法 二 变量 三 过滤器 四 标签Tags 五 模板继承 六 组件 七 自定义标签和过滤器 八 静态文件相关 一 语法   模板渲染的官方文档 关于模 ...

  9. VC图形绘制双缓存的代码复用性讨论

    在前文中已经讨论了如何实现界面绘制双缓存的问题,前文网址如下: http://www.2cto.com/kf/201111/112429.html 双缓存的主要思路是:先把图形绘制到内存DC中,然后再 ...

随机推荐

  1. java数据结构----链表

    1.链表:链表是继数组之后第二种使用的最广泛的通用存储结构,它克服了数组的许多弊端:无序数组的查找慢问题,有序数组的插入慢问题,数组定义时的定长问题.它也可取代数组,作为其他数据结构的基础. 2.引用 ...

  2. ES5(基本包装类型)字符串的方法

    看一下字符串有哪些常用的方法: 1.concat();将多个文本组合起来,返回新的字符串,就是拼接字符串. 查找位置 2.indexOf();返回要匹配的字符在字符串第一次出现的索引,参数就是匹配的字 ...

  3. Zynq7000开发系列-3(Xilinx交叉编译环境搭建)

    一.前言 上一篇文章说了,在开发之前必须先搭建起交叉编译环境,于是这里我们就介绍一下环境的搭建过程. 其实在所安装的Vivado HLx 2016.4中就包含了Xilinx SDK,在该SDK上即可开 ...

  4. C# 基础之字段与属性

    1.属性是字段的扩展 2.根据面向对象封装思想,字段最好设为private(私有),这样有利于防止客户端对字段的篡改,从而保证了成员的完整性 3.访问类中私有字段,C#提供了属性,用来对字段进行灵活的 ...

  5. Java环境安装与Eclipse安装

    1.jdk下载安装 2.Eclipse下载安装 遇到的问题: 出现问题原因可能有两个:1)没有配置环境变量 2)jdk和eclipse安装的版本不一致,都是64位或者都是32位. 本人出现错误的原因: ...

  6. CF1066B Heaters

    思路: 从左向右贪心选择能覆盖当前位置的最靠右的那个heater即可,和poj radar installation类似. 实现: #include <iostream> #include ...

  7. 使用POI创建word表格-在表格单元格中创建子表格

    要实现的功能如下:表格中的单元格中有子表格 实现代码如下: XWPFParagraph cellPara = row.getCell(j).getParagraphArray(0); //row.ge ...

  8. Java MVC 分页实例

    共4个文件 requestLogList.jsp RequestInfoController.java RequestInfoBean.java RequestInfoService.java 1.r ...

  9. ThreadLocal遇到线程池时, 各线程间的数据会互相干扰, 串来串去

    最近遇到一个比较隐蔽而又简单地问题,在使用ThreadLocal时发现出现多个线程中值串来串去,排查一番,确定问题为线程池的问题,线程池中的线程是会重复利用的,而ThreadLocal是用线程来做Ke ...

  10. GP SQL 优化

    1.收集统计信息vacuum full analyze ZCXT.ZCOT_PS_PROJECT; 2.检查表的数据量分布select gp_segment_id,count(*) from fact ...