zoukankan      html  css  js  c++  java
  • flask——包含,继承,宏

     包含,继承,宏  都是为了提高代码的效率,都是为了防止代码的沉余,浪费资源

    (macro)

    可以把它看做Jinja2中的一个函数,他会返回一个模板或者HTML字符串,为了避免反复的编写同样的模板代码,出现代码沉余,可以把它们协程函数以进行重用,需要在多出重复使用的模板代码片段可以写入单独的文件,在包含在所有模板中,以避免重复。

    继承:

    模板继承是为了重用模板中的公共内容,一般web开发中,继承主要使用在网站的顶部菜单,底部。这些内容可以定义在父模板中,子模板直接继承,而不需要重复书写,关键字为block ,extends

    {%block top%}{% endblock %}先定义一个标签的内容,相当于在父模板中挖个坑,当子模板继承父模板时,可以进行填充。

    子模板使用extends指令声明这个模板继承自那个模板,父模板中定义的快在子模板中被重新定义,在字幕板中调用父模板的内容可以使用super()。

    extends指令声明这个模板继承自那儿~

    使用继承的时候注意一下几点:不支持多继承,为了便于阅读,在子模板中使用extends时,尽量写在模板的第一行,不能再一个模板文件中定义多个相同名字的block标签,当在页面中使用多个block标签时,简易给结束标签起个名字,当多个block嵌套时,阅读性更好

     包含:

    包含是除了宏和继承,还可以支持代码重用的功能,他的功能是将另一个模板整个加载到当前的模板中,并直接渲染。

     include 是包含的文件     , 包含在使用时,如果包含的模板的文件不存在时,程序会抛出TemplateNotFound,可以加上ignore missing 关键字,如果包含的模板文件不存在,会忽略这条include语句 。

    宏(Macro),继承(Block),包含(include) 均能实现代码的复用。

    继承的本质是代码替换,一般用来实现多个页面中重复不变的区域,宏的功能类似函数,可以穿入参数,需要定义,调用。,包含是直接将目标模板文件整个渲染出来。

  • 相关阅读:
    document.URL 和 windows.location.href的区别
    毕向东udp学习笔记3多线程聊天
    毕向东udp学习笔记2
    毕向东udp学习笔记1
    udp 服务器界面监听
    android jni 总复习(转载)
    Android jni 编程4(对基本类型二维整型数组的操作)
    Android jni 编程3(对基本类型一维整型数组的操作)总结版
    Android jni 编程2(对基本类型一维整型数组的操作)
    Android jni 编程1(对基本类型字符串的操作)
  • 原文地址:https://www.cnblogs.com/weifeng-888/p/10174789.html
Copyright © 2011-2022 走看看