`

base模版扩展

    博客分类:
  • HTML
阅读更多

模板扩展

一个块语句压缩了一些当你扩展时可能想要改变的模板元素

例如,为了使用一个能动态header块,你可以在父模版中添加:

<header>
    {% block header %}{% end %}
</header>

 然后为了在子模板中覆写{% block header %}{% end %}部分,你可以使用块的名字引用,并把想要的内容放到其中

{% block header %}{% end %}

{% block header %}
    <h1>Hello world!</h1>
{% end %}

 任何继承这个模板的文件都可以包含它自己的{% block header %}和{% end %},把一些不同的东西加进去

意味着你可以使用你的HTML相同代码为你网站不同的网页共享。
通过这种方法,当你想使用同样的信息或布局,或者你想改变某些模板内容时,你不必在每个文件中都重复着相同的代码。你仅仅只需要改变一个文件,而不是所有的。

<!DOCTYPE html>
{% load staticfiles %}
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Pos机</title>
    <link rel="stylesheet" href="../../static/css/style.css">  //外部样式表
    {% block style(标签名) %}
   //创建了一个block(块),这个模板标签允许你在其中插入扩展自base.html的模板的HTML代码
    {% endblock %}
</head>
<body>
<div>
    <div class="option">
        <div class="opt-list">
            <input type="button" class="list visit-link" value="Let's Go"/>
        </div>
    </div>
    {% block content %}
      //这个模板标签允许你在其中插入扩展自base.html的模板的HTML代码
  {% endblock %}
</div>
</body>
</html>

 模版文件引入:
{% extends 'blog(项目名)/base.html'(模版名) %}

css与jQuery方法引入再建一个模版标签即可
{% load staticfiles %}(加载静态文件)
{% block style(标签名) %}
    <link rel="stylesheet" href="{% static 'css/cart.css' %}">
    <script src="../../static/js/shopping_list.js"></script>
{% endblock style %}

 

应用模版:

{% extends 'cart/base.html' %}  //引入模版
{% load staticfiles %}  //加载静态文件,引入css,js
{% block style %}
    <link rel="stylesheet" href="../../static/css/home.css">
    <script src="../../static/js/home.js"></script>
{% endblock style %}
{% block content %}   //具体内容
    <div class="detail">
        <h1>Welcome to Let's Go!</h1>
        <p>商店里进行购物结算时会使用收银机(POS)系统,这台收银机会在结算时根据客户的
            购物车(Cart)中的商品(Item)和商店正在进行的优惠活动(Promotion)进行结算和打印购物清单。
            已知该商店正在对部分商品进行“买三送一”的优惠活动,即买三件商品其中一件是送的,按照两件商品价格结算。
            我们需要实现一个名为printInventory函数,该函数能够将指定格式
            的数据作为参数输入,然后在浏览器的控制台中输出结算清单的文本。
        </p>
        <input class="visit" type="button" value="Let's Go" onclick="location='shopping_list.html'">
    </div>
{% endblock content %}

 

 

分享到:
评论

相关推荐

    MVC根据用户角色选择模版页master

    为了便于管理和扩展,我们可以在项目中创建一个BaseController类作为所有前台Controller的基类,并在此类中实现逻辑来根据用户角色选择模版页。 ```csharp public abstract class BaseController : Controller { /...

    jspwiki中文模版

    通过使用"jspwiki中文模版",你不仅能够快速搭建一个支持中文的wiki站点,还能享受到JSPWiki的灵活性和可扩展性。无论是个人知识库、团队协作平台还是项目文档管理,JSPWiki都是一个值得信赖的选择。

    ThinkPHP完美后台模板

    该模板充分利用了ThinkPHP框架的优势,提供了一个高效、稳定且易于扩展的开发环境。 首先,让我们深入了解一下ThinkPHP框架。ThinkPHP是一个开源的PHP框架,基于MVC(Model-View-Controller)模式,旨在简化Web应用...

    C# 常用协议实现模版及FixedSizeReceiveFilter示例(SuperSocket入门)

    在C#中,SuperSocket是一个强大的、可扩展的网络通信框架,它允许开发者轻松地创建自己的Socket服务。本文将深入探讨如何使用SuperSocket中的几种常用协议实现模版,特别是FixedSizeReceiveFilter,这对于理解如何...

    简单的C++模板类工厂

    总的来说,"简单的C++模板类工厂"是一个实用的设计,它利用模板和工厂模式的组合,提供了一种灵活且易于扩展的方式来管理不同类型的对象,同时在多线程环境中保证了安全性。理解和熟练应用这种模式对于提升C++程序的...

    itext7 根据pdf模板填充图像框

    #### 六、扩展思考 - **动态调整图片尺寸**:如果需要根据不同的输入动态调整图片的大小,可以进一步探索`PdfButtonFormField`的相关方法。 - **多图片填充**:如果模板中包含多个图片占位符,可以通过循环遍历的...

    网络构建-网络综合布线系统设计方案(模版).docx

    ### 知识点生成 #### 一、工程概况与项目背景 - **项目背景**:随着数字化校园的推进,学生公寓作为...本方案不仅考虑到了当前的应用需求,还兼顾了未来的发展趋势,旨在构建一个高效、稳定、可扩展的信息传输网络。

    详解Python的Django框架中的模版继承

    模板继承的核心思想是定义一个基础模板(Base Template),在这个基础上,子模板(Child Templates)可以通过覆盖或扩展基础模板中的特定部分来实现个性化定制。 基础模板通常包含了网站的全局布局,如头部、导航栏...

    easypoi 导出word并插入echart图片和文件

    至于“plugin”这个文件名,可能是项目中使用的插件或者扩展,例如Easypoi可能需要一些额外的插件来支持更复杂的Word操作,或者用于处理Echarts与Word的集成。 总结,使用Easypoi和Echarts结合,可以在Java后端生成...

    java实现自定义excel模板导出excel并可保存客户端和在线打开

    在Java编程环境中,生成自定义Excel模板是一项常见的需求,尤其在数据分析、报表生成等领域。本文将深入探讨如何使用Java和jxl库来实现这...在实际应用中,不断优化和扩展这些工具,可以更好地适应业务变化和用户需求。

    C++类模板案例.zip

    类模板是函数模板的扩展,用于定义类而不是函数。本案例将深入探讨如何利用C++类模板实现泛型编程,以及如何处理数组等数据结构。 首先,我们来看类模板的基本语法。类模板定义时,我们用`template`关键字,后面...

    Flask-learn.zip

    总结,`Flask-learn.zip` 提供了一套完整的 Flask 应用模版,涵盖了路由、视图、模板、数据库以及扩展的使用,是学习 Flask 的绝佳资源。通过深入研究这个模板项目,你可以了解 Flask 框架的基本工作原理和最佳实践...

    basefunction.rar_matlab例程_Visual_C++_

    ARX是Visual C++中的一种扩展,允许开发人员创建能够在MATLAB环境中运行的动态链接库(DLL)。这样的接口可以增强MATLAB的功能,使其能够调用C++的高效计算能力,处理大数据量或者进行复杂的实时操作。 在机械行业...

    基于模板的代码生成器LKGenerator1.1.0_x86

    生成的代码默认包含AutoBean和AutoField的注解配置(AutoBean和AutoField注解非生成代码的必须项,如果配置了可以在生成代码时时为模版注入该配置,增强模版的扩展性)。 4.编译实体类 前置条件:系统安装JDK并配置...

    基于模板的代码生成器LKGenerator1.1.0_x64

    生成的代码默认包含AutoBean和AutoField的注解配置(AutoBean和AutoField注解非生成代码的必须项,如果配置了可以在生成代码时时为模版注入该配置,增强模版的扩展性)。 4.编译实体类 前置条件:系统安装JDK并配置...

    E客电影系统EKVOD v2.0 GBK.zip

    导出导入规则更加方便,导出规则以base64方式加密,分享方便不会丢失数据! 4、模版标签管理: 后置直接管理模版文件,可以编辑、添加模版,模版标签向导等,自定义标签添加管理等! 5、集成高级工具 重复...

    snmp v3 introduction

    VACM允许管理员定义哪些用户可以访问哪些管理信息库(Management Information Base,MIB)对象,以及他们可以执行的操作类型(例如读取、写入、创建或删除)。这有助于确保只有经过授权的用户才能访问敏感信息。 ##...

    ireport scriptlet脚本的使用

    这些类通常继承自`net.sf.jasperreports.engine.JRDefaultScriptlet`或`net.sf.jasperreports.engine.base.JRBaseScriptlet`,并覆盖其中的方法来实现我们需要的功能。 在iReport中,`scriptlet`的使用通常包含以下...

    U8开发之过滤控件

    相关数据存储在数据库的几个表中,如`flt_DefineMeta_Base`(过滤基础元数据)、`flt_DefineMeta_Cache`(过滤缓存数据)、`flt_DefineMeta_Cust`(过滤二次开发数据)和`flt_DefineMeta_lang`(过滤多语言数据)。...

    Springboot2快速集成MiniDao

    SpringBoot2快速集成MiniDao是开发中的一个常见需求,它能...这只是一个基本的集成示例,实际项目中可能需要根据业务需求进行更复杂的配置和扩展。不过,有了SpringBoot和MiniDao的组合,数据库访问将变得轻松而高效。

Global site tag (gtag.js) - Google Analytics