zoukankan      html  css  js  c++  java
  • django第七天(模板的复用性,include标签和母版)

    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}}
        
    
  • 相关阅读:
    新安装的CentOS 7不能上网
    修改机器名
    读书笔记-MySQL运维内参08-索引实现原理2
    读书笔记-MySQL运维内参08-索引实现原理1
    读书笔记-MySQL运维内参07-InnoDB数据存储结构
    MySQL 参数设置-持续更新
    读书笔记-Mycat权威指南-10-分片规则
    读书笔记-Mycat权威指南-09-全局序列号
    读书笔记-Mycat权威指南-08-Mycat中的Join
    读书笔记-Mycat权威指南-03-Mycat中的概念
  • 原文地址:https://www.cnblogs.com/robert-zhou/p/10478874.html
Copyright © 2011-2022 走看看