原创

Flask(8) - jinja2模板使用(if语句和for循环)

if判断

模板中的if判断和python判断类似,可以使用“<、>、>=、<=、==、!=”来进行判断
也可以使用“and 、or、not”判断操作
# app.py
@app.route('/')
def hello_world():
    res = {
        "name": "呵呵",
        "age": 9,
    }
    return render_template("index.html", **res)

 

<!--index.html-->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>index</title>
</head>
<body>
{% if name == "呵呵" %}
    <p>{
  { age }}</p>
{% else %}
    <p>age不存在</p>
{% endif %}

{% if age >= 10 %}
    <p>{
  { name }}</p>
{% else %}
    <p>name不存在</p>
{% endif %}

</body>
</html>

for循环

for使用:for循环和python相同,for...in...
for循环可以遍历任何一个序列,包括数组、字典、元组

示例:

# app.py

from flask import Flask, render_template

app = Flask(__name__)


@app.route("/index/")
def index():
    res = {
        "name": ["name1", "name2", "name3"],
        "name2": {
            "username": "hahaha",
            "age": "20",
        },
        "books": [
            {
                "name": "西游记",
                "auth": "吴承恩",
                "price": 100
            },
            {
                "name": "红楼梦",
                "auth": "曹雪芹",
                "price": 120
            }
        ]
    }

    return render_template("index.html", **res)


if __name__ == '__main__':
    app.run(debug=True)
<!DOCTYPE html>
<html lang="zh-en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>index</title>
</head>
<body>

<!--for循环-->
{% for name1 in name %}
    <p>{
  { name1 }}</p>
{% endfor %}

<!-- for循环字典 -->
<table>
    <thead>
    <tr>
        <th>用户名</th>
        <th>年龄</th>
    </tr>
    </thead>
    <tbody>
        <tr>
            {% for key,value in name2.items() %}
                <td>{
  { value }}</td>
            {% else %}
                <p>没有内容!!!</p>
            {% endfor %}
{#            <td>{
  { name2.username }}</td>#}
{#            <td>{
  { name2.age }}</td>#}
        </tr>
    </tbody>
</table>


<!-- for循环变量使用 -->
<table>
    <thead>
    <tr>
        <th>序列长度</th>
        <th>是否最后一次迭代</th>
        <th>是否第一次迭代</th>
        <th>序号</th>
        <th>序号0</th>
        <th>书名</th>
        <th>作者</th>
        <th>价格</th>
    </tr>
    </thead>
    <tbody>
    {% for book in books %}
        <tr>
            <td>{
  { loop.length }}</td>  <!--序列长度-->
            <td>{
  { loop.last }}</td>    <!--是否最后一次迭代,是返回True-->
            <td>{
  { loop.first }}</td>   <!--是否第一次迭代,是返回True-->
            <td>{
  { loop.index }}</td>   <!--从一开始-->
            <td>{
  { loop.index0 }}</td>  <!--从零开始-->
            <td>{
  { book.name }}</td>
            <td>{
  { book.auth }}</td>
            <td>{
  { book.price }}</td>
        </tr>
    {% endfor %}

    </tbody>
</table>


</body>
</html>

九九乘法表

<!--使用for循环和if写九九乘法表-->

<!DOCTYPE html>
<html lang="zh-en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>index</title>
</head>
<body>

<table>
    <tbody>
   <!--循环取数值1-9,range顾头不顾尾-->
    {% for x in range(1,10) %}
        <tr>
            {% for y in range(1,10) %}
                {% if y <= x %}
                    <th>{
  { y }}x{
  { x }}={
  { x*y }}</th>
                {% endif %}
            {% endfor %}
        </tr>
    {% endfor %}

    </tbody>
</table>


</body>
</html>

 

正文到此结束
评论

登录后才能发表评论 登录/注册

0评论
  • 还没有评论,快来抢沙发吧!