美文网首页
flask-模板语法之模板标签

flask-模板语法之模板标签

作者: 测试探索 | 来源:发表于2022-07-23 20:40 被阅读0次

一:语法

image.png

二:if条件控制

image.png
if标签中的is判断
内置的判断条件

app.py

from flask import Flask,render_template,render_template_string,g,url_for

app = Flask(__name__)

@app.route('/tag')
def tag():
    """ 模板标签的使用 """
    var = 1
    return render_template("tag.html",var = var)


if __name__ == '__main__':
    app.run(debug=True)

tag.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>模板标签的使用</title>
</head>
<body>
    <h3> if的使用</h3>
    {% if var is none %}
    <p>var 是 none</p>
    {% else %}
    <p> var 不是 none</p>
    {% endif %}

    {% if a is defined %}
    <p>a定义了</p>
    {% else %}
    <p>a没被定义</p>
    {% endif %}


</body>
</html>

三:for循环

3-1:demo1
image.png
image.png
image.png

app.py

from flask import Flask,render_template,render_template_string,g,url_for

app = Flask(__name__)
@app.route('/tag')
def tag():
    """ 模板标签的使用 """
    var = 1
    list_user = [
        {
            'username': '张三',
            'age':'32',
            'address': {
                'city': '广州',

            }
        },
        {
            'username': '李四',
            'age':'23'
        }
    ]
    return render_template("tag.html",var = var,list_user=list_user)


if __name__ == '__main__':
    app.run(debug=True)

tag.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>模板标签的使用</title>
</head>
<body>
    <h3> if的使用</h3>
    {% if var is none %}
    <p>var 是 none</p>
    {% else %}
    <p> var 不是 none</p>
    {% endif %}

    {% if a is defined %}
    <p>a定义了</p>
    {% else %}
    <p>a没被定义</p>
    {% endif %}

    <h3>for循环的使用</h3>
    {% for item in list_user%}
    <p>用户名:{{ item.username }},年龄:{{ item.age }}</p>
    {% else %}
    <p>用户信息为空</p>
    {% endfor %}

    <h3>for 循环 dict</h3>
    {% for user in list_user%}
        <p>
            {% for key,value in user.items() %}
            {{ key }}:{{ value }}
            {% endfor %}
        </p>
    {% else %}
    <p>用户信息为空</p>
    {% endfor %}

</body>
</html>
3-2:循环的扩展,continue/break

app.py

from flask import Flask,render_template,render_template_string,g,url_for

app = Flask(__name__)
# 为模板引擎添加扩展,支持break/continue语法
app.jinja_env.add_extension('jinja2.ext.loopcontrols')

@app.route('/tag')
def tag():
    """ 模板标签的使用 """
    var = 1
    list_user = [
        {
            'username': '张三',
            'age':'32',
            'address': '广州',

        },
        {
            'username': '李四',
            'age':'23'
        },
        {
            'username': '王五',
            'age': '32',
            'address':  '广州',

        },
        {
            'username': '王二',
            'age': '23'
        }
    ]
    return render_template("tag.html",var = var,list_user=list_user)


if __name__ == '__main__':
    app.run(debug=True)

tag.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>模板标签的使用</title>
    <style type = "text/css">
        .odd{
            background-color: #f00;
            color: #fff;
        }
        .even{
            background-color: aqua;
            color: #fff;
        }
    </style>
</head>
<body>
    <h3> if的使用</h3>
    {% if var is none %}
    <p>var 是 none</p>
    {% else %}
    <p> var 不是 none</p>
    {% endif %}

    {% if a is defined %}
    <p>a定义了</p>
    {% else %}
    <p>a没被定义</p>
    {% endif %}

    <h3>for循环的使用</h3>
    {% for item in list_user%}
    <p>用户名:{{ item.username }},年龄:{{ item.age }}</p>
    {% else %}
    <p>用户信息为空</p>
    {% endfor %}

    <h3 >for 循环 dict</h3>
    {% for user in list_user%}
        <p class = "{{ loop.cycle('odd','even') }}">
            第{{ loop.index }}个用户,总共{{ loop.length}}个用户<br/>
        {% for key,value in user.items() %}
            {{ key }}:{{ value }}
        {% endfor %}
        </p>
    {% else %}
    <p>用户信息为空</p>
    {% endfor %}


    <h3 >for 循环 dict-break</h3>
    {% for user in list_user%}
        <p class = "{{ loop.cycle('odd','even') }}">
            第{{ loop.index }}个用户,总共{{ loop.length}}个用户<br/>
        {% for key,value in user.items() %}
            里面{{ loop.index }}
            {% if loop.index>2 %}
                {% break %}
            {% endif %}
            {{ key }}:{{ value }}
        {% endfor %}
         <br/>
        </p>
    {% else %}
    <p>用户信息为空</p>
    {% endfor %}


</body>
</html>
image.png
3-3:设置变量,赋值操作,使用with代码块,实现块级作用域
image.png

tag.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>模板标签的使用</title>
    <style type = "text/css">
        .odd{
            background-color: #f00;
            color: #fff;
        }
        .even{
            background-color: aqua;
            color: #fff;
        }
    </style>
</head>
<body>
    <h3> if的使用</h3>
    {% if var is none %}
    <p>var 是 none</p>
    {% else %}
    <p> var 不是 none</p>
    {% endif %}

    {% if a is defined %}
    <p>a定义了</p>
    {% else %}
    <p>a没被定义</p>
    {% endif %}

    <h3>for循环的使用</h3>
    {% for item in list_user%}
    <p>用户名:{{ item.username }},年龄:{{ item.age }}</p>
    {% else %}
    <p>用户信息为空</p>
    {% endfor %}

    <h3 >for 循环 dict</h3>
    {% for user in list_user%}
        <p class = "{{ loop.cycle('odd','even') }}">
            第{{ loop.index }}个用户,总共{{ loop.length}}个用户<br/>
        {% for key,value in user.items() %}
            {{ key }}:{{ value }}
        {% endfor %}
        </p>
    {% else %}
    <p>用户信息为空</p>
    {% endfor %}


    <h3 >for 循环 dict-break</h3>
    {% for user in list_user -%}
        <p class = "{{ loop.cycle('odd','even') }}">
            第{{ loop.index }}个用户,总共{{ loop.length}}个用户<br/>
        {% for key,value in user.items() -%}
            里面{{ loop.index }}<br/>
            {% if loop.index>2 %}
                {% break %}
            {% endif %}
            {{ key }}:{{ value }}
        {% endfor -%}
        </p>
    {% else %}
    <p>用户信息为空</p>
    {% endfor %}

    <h3>赋值的使用</h3>
    {% with %}
        {% set temp = 43%}
        {{ temp }}
    {% endwith %}

</body>
</html>
image.png
3-4:转义显示--raw标签
image.png

相关文章

  • flask-模板语法之模板标签

    一:语法 二:if条件控制 app.py tag.html 三:for循环 3-1:demo1 app.py ta...

  • Flask 框架(2)-模板

    Flask-模板

  • 02-Flask之模板&模型

    一、模板 模板概念 Jinja2 模板语法 结构标签 block 静态资源的加载 结构标签 extends 结构标...

  • 02-Flask之模板&模型

    一、模板 模板概念 Jinja2 模板语法 结构标签 block 静态资源的加载 结构标签 extends 结构标...

  • 02-Flask之模板&模型

    一、模板 模板概念 Jinja2 模板语法 结构标签 block 静态资源的加载 结构标签 extends 结构标...

  • 02-Flask之模板&模型

    一、模板 模板概念 Jinja2 模板语法 结构标签 block 静态资源的加载 结构标签 extends 结构标...

  • Flask-day02

    一、模板 模板概念 Jinja2 模板语法 结构标签 block 静态资源的加载 结构标签 extends 结构标...

  • 04-flask模板

    四、 模板 概念 模板语法 条件控制if 遍历for 结构标签 block 结构标签 extends 结构标签 i...

  • 003 第一个页面

    第一个页面 一、基础模板 二、模板解读 DOCTYPE:指定文档类型,规定html标签语法 html:文档根标签,...

  • Thymeleaf

    Thymeleaf语法/标签说明语法/标签 说明layout:fragment 定义模板片段,可以在子页面用同...

网友评论

      本文标题:flask-模板语法之模板标签

      本文链接:https://www.haomeiwen.com/subject/lgebirtx.html