Flask jinjia2: # {{ }}引用变量数据,执行函数 # {%%}逻辑代码

from flask import Flask,render_template

STUDENT={'name':'Old','age':38,'gender':''}

STUDENT_LIST=[
                {'name':'Old','age':38,'gender':''},
                {'name':'Boy','age':73,'gender':''},
                {'name':'EDU','age':84,'gender':''}
            ]

STUDENT_DICT={
                1:{'name': 'Old', 'age': 38, 'gender': ''},
                2:{'name': 'Boy', 'age': 73, 'gender': ''},
                3:{'name': 'EDU', 'age': 84, 'gender': ''}
            }

app = Flask(__name__)
app.debug=True


@app.template_global() #加了这个后,可以在render_template中不需要传func_ab=ab
def ab(a,b):
    return a+b

# jinjia2:
# {{  }}引用变量数据,执行函数
# {%%}逻辑代码

#查看STUDENT 放在studentinfo页面
@app.route("/stu")
def stu():
    # return render_template('studentinfo.html',func_ab=ab,stu_info=STUDENT,stu_list=STUDENT_LIST,stu_dict=STUDENT_DICT) #stu_info这个命名随便命名。后端将数据给了stu_info这个变量。
    #--> html中引用使用{{stu_info}}就可以把后端的数据传给前端进行展示。func_ab将视图函数传给html文件,可以支持传多个,所有函数都要在render_template
    #-->中传函数名。怎么可以避免写一次其他的都可以用.
    return render_template('studentinfo.html',stu_info=STUDENT,stu_list=STUDENT_LIST,stu_dict=STUDENT_DICT) #stu_info这个命名随便命名。后端将数据给了stu_info这个变量。
    #在html文件中直接使用函数名就可以了

if __name__ == '__main__':
    app.run('127.0.0.1',9090)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>学生信息</title>
</head>
<body>
    {{ stu_info }}
    <table border="1px">
        <tr>
            <td>name</td>
            <td>age</td>
            <td>gender</td>
        </tr>
        <tr>
            <td>{{ stu_info.name }}</td>
            <td>{{ stu_info.get('age') }}</td>
            <td>{{ stu_info['gender'] }}</td>
        </tr>
    </table>



    {{ stu_list }}
    <table border="1px">
    <tr>
        <td>name</td>
        <td>age</td>
        <td>gender</td>
    </tr>

   {% for stu in stu_list %}
       <tr>
            <td>{{ stu.name }}</td>
            <td>{{ stu.get('age') }}</td>
            <td>{%if stu["gender"]!="男" and stu["gender"]!="女"%}
                二哈
                {% else %}
                {{ stu['gender'] }}
                {% endif %}

            </td>
       </tr>
   
   {% endfor %}

    </table>


{#    {{ stu_dict }}#}
{#    {% for dic in stu_dict %}#}
{#        {{ dic }}#}
{#        {{ stu_dict[dic] }}#}
{#        {{ stu_dict[dic].name }}#}
{#        {{ stu_dict[dic].get("age") }}#}
{#        {{ stu_dict[dic]["gender"] }}#}
{##}
{#    {% endfor %}#}

        <table border="1px">
        {{ stu_dict }}
            {% for foo,item in stu_dict.items() %}

       <tr>
            <td>{{ item["name"] }}</td>
            <td>{{ item["age"] }}</td>
            <td>{%if item["gender"]!="男" and item["gender"]!="女"%}
                二哈
                {% else %}
                {{ item['gender'] }}
                {% endif %}

            </td>
       </tr>
{#                {{ item["name"] }}#}
{#                {{ item["age"] }}#}
{#                {{ item["gender"] }}#}

            {% endfor %}
        </table>

        <p>{{ ab(22,222) }}</p>
        <p>{{ ab(333,33333) }}</p>




</body>
</html>
原文地址:https://www.cnblogs.com/zhuxibo/p/14120566.html