模板-----控制结构

Posted kongzhagen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模板-----控制结构相关的知识,希望对你有一定的参考价值。

 

根目录下的基础代码 flaskStudy.py

from flask import Flask, render_template

app = Flask(__name__)

args = {
    "sex": "male",
    "addr": "beijing",
    "like": "tea",
    "age": 65
}

@app.route("/fromuser/<name>")
def user(name):
    return render_template("user.html", user=name,args=args)

if __name__ == ‘__main__‘:
    app.run()

  

 

条件控制

  在根目录下的templates目录下创建user.html, 内容如下。

{% if user %}
    hello, {{ user }} !
{% else %}
    hello, Strange !
{% endif %}

  功能为: 判断user是否存在。

  运行结果

技术图片

 

 

 

循环控制

  在user.html中增加如下代码

<ul>
    {% for arg in args %}
        <li>{{ arg }}</li>
    {% endfor %}
</ul>

  功能: 通过for循环打印user的所有属性。

  运行结果:

技术图片

 

 

 

  类似python代码中的函数

  1、 在代码中直接编写引用。

{% if user %}
    hello, {{ user }} !
{% else %}
    hello, Strange !
{% endif %}

{% macro render_arg(arg) %}
    <li>{{ arg }}</li>
{% endmacro %}

{% for arg in args %}
    {{ render_arg(arg) }}
{% endfor %}

  功能: 创建一个宏 render_arg, 在for循环中调用宏。

  运行结果:

 技术图片

 

 

   2、像python一样, 把宏(函数)保存在单独的文件中, 然后在需要的模块中导入。

  macros.html

{% macro render_arg(arg) %}
    <li>{{ arg }}</li>
{% endmacro %}

  user.html

{% if user %}
    hello, {{ user }} !
{% else %}
    hello, Strange !
{% endif %}

{% import ‘macros.html‘ as macros %}
{% for arg in args %}
    {{ macros.render_arg(arg) }}
{% endfor %}

 

包含

  应用场景: 有一段代码, 在多处被频繁引用,为了避免多次编辑,可将这段代码存储于一个单独的文件中, 在需要的模块中引用。

  common.html : 存储利用频繁的代码片段

  {% include ‘common.html‘ %}  : 在需要的模块中引用common.html中的代码

  示例:

  common.html

{% if user %}
    hello, {{ user }} !
{% else %}
    hello, Strange !
{% endif %}

  user.html

{% include"common.html" %}

{% import ‘macros.html‘ as macros %}
{% for arg in args %}
    {{ macros.render_arg(arg) }}
{% endfor %}

  

 

  

以上是关于模板-----控制结构的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段1——vue主模板

VSCode自定义代码片段2——.vue文件的模板

VSCode自定义代码片段(vue主模板)

T4模板:T4模板之菜鸟篇

Eclipse 中的通用代码片段或模板

模板-----控制结构