zoukankan      html  css  js  c++  java
  • django下模板的包含和继承

    包含:
    {% include %} 允许在模板中包含其他模板的内容
    标签的参数可以是:模板名称、变量 字符串
    {% include 'nav.html'%} #模板名称,将被包含的模板中的所有html内容都包含进来,所以一般被包含的模板中直接写需要的内容即可,不需要再另外写入其他的head、body、title之类的部分
    {% include 'app/nav.html'%} #模板路径
    {% include template_name %} #模板变量

    还可以在包含的时候传递变量
    https://docs.djangoproject.com/en/1.9/ref/templates/builtins/#include


    继承:
    本质上说:模板继承几居室先构造一个基础框架模板,然后在其子模块中对它所包含站点共用部分和定义进行重载

    1、{% block %}
    定义块
    https://docs.djangoproject.com/en/1.9/ref/templates/builtins/#block

    2、{% extends %}
    继承父模块
    https://docs.djangoproject.com/en/1.9/ref/templates/builtins/#extends


    注意事项:
    1、包含和继承可以把一些共用的网页模块独立出来,以减少代码的冗余
    2、如果在模块里使用{% extends %}的话,这个标签必须在所有模块标签的前面,否则模板继承不工作
    3、通常尽可能模板里的{% block %}越多越好,子模块不必定义所有的父block
    4、如果你需要得到父模块的内容,{{ block.supper }}变量可以帮你完成工作 当你需要给父模块添加内容而不是取代它的时候这就很有用
    5、不能在同一模板里定义多个同名的{% block %},因为块标签同时在两个地方工作,不仅仅在子模块中,而且在父模块中也填充内容,如果子模块有两个同名的标签,父模板将不能决定使用哪个块内容来使用

  • 相关阅读:
    web字体
    解决input之间的空隙
    CSS基础:text-overflow:ellipsis溢出文本
    css3控制内容的可选择性
    设置dt height 保证dd在同一行
    extjs Ext.Ajax.request 同步和异步
    jquery 同步和异步请求
    freemarker 基础
    freemarker简单使用示例
    【数据结构】线性表顺序结构的操作---C/C++语言
  • 原文地址:https://www.cnblogs.com/kindnull/p/8379795.html
Copyright © 2011-2022 走看看