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. IP服务-5-网络时间协议

    NTP版本3(RFC1305)允许IP主机向一个通用的时钟源同步它们的日期和时间. 从设计上来说,大多数路由器和交换机都使用NTP客户端模式,根据NTP服务器所提供的时间来调整自己的时钟.NTP定义了 ...

  2. 两句话跳转QQ聊天界面 通过web方式

    NSString *qq=[NSString stringWithFormat:"]; NSURL *url2 = [NSURL URLWithString:qq]; if ([[UIApp ...

  3. [題解]luogu_P1120小木棍(搜索)

    好久以前抄的題解,現在重新抄題解做一下 1.對所有木棍從大到小排序,後用小的比較靈活 2.限制加入的木棍單調遞減,因為先/后用長/短木棍等價,反正就是那兩根 3.預處理出重複木棍的位置,防止重複搜索相 ...

  4. UVa-11582:Colossal Fibonacci Numbers!(模算术)

    这是个开心的题目,因为既可以自己翻译,代码又好写ヾ(๑╹◡╹)ノ" The i’th Fibonacci number f(i) is recursively defined in the f ...

  5. Oracle Database Hang While Loading 3rd party SBT Library And After This Nobody Can Access The Database (windows login 登陆hang )

    Applies to: Oracle Database - Enterprise Edition - Version 11.2.0.4 and later Microsoft Windows x64 ...

  6. mysql自己编写启停脚本

    一.场景 在实际生产环境中要求相对较高的企业对于root权限管控相对比较高,故而很多软件并非安装在root用户下(当然root用户权限也可管理,但正常情况下root权限并不会给业务使用方,而会给一个普 ...

  7. vscode设置html默认浏览器

    Vscode版本:1.30.2,设置方法:file→preference→settings,剩余设置如下图.

  8. socket使用非阻塞connect

    在使用tcp的connect调用时,默认是使用阻塞方式,当服务器当前不可用时,connect会等待(内部在重试?)直到超时时间到达,而这个超时时间是系统内核规定的,不能使用setSocketOpt来设 ...

  9. siege4安装和使用介绍

    使用文档参考地址:https://www.joedog.org/siege-manual/ siege4地址:http://download.joedog.org/siege/ cd /usr/loc ...

  10. selenium-Python之进行文件的上传和下载文件

    在利用Selenium进行批量上传文件时,遇到如下的Windows窗口进行上传.下载操作时,可以通过pywinauto进行操作.上传窗口如下 使用pywinauto,需知Windows窗口控件的cla ...