天天看點

Flask學習(二)——Jinja2模闆引擎

Jinja2模闆引擎

動态網頁,可能有部分内容資料是需要計算出來的,是動态的内容

在函數中傳遞參數,在HTML頁面中,利用{{}}擷取傳遞的參數

​​app.py​​

from flask import Flask,render_template

app = Flask(__name__)


@app.route('/user', methods=['GET', 'POST'])
def user():
    user_var="程式設計類輔助實驗教學平台"
    return render_template('demo3.html', html_var=user_var)

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

demo3.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>This is a Demo3 Page</h1>
<h2>It is only using for test</h2>
這是傳輸過來的變量:{{ html_var }}
</body>
</html>      

顯示效果:

Flask學習(二)——Jinja2模闆引擎

在模闆中使用{# This is a annotation #}進行注釋

傳參時,清單和字典的使用:

​​app.py​​

from flask import Flask,render_template

app = Flask(__name__)


@app.route('/', methods=['GET', 'POST'])
def user():
    user_var="程式設計類輔助實驗教學平台"
    list_test=['這是list的1','這是list的2','這是list的3','這是list的4','這是list的5']
    dict_test={
        'name': "這是測試name",
        'key': "這是測試key"
    }
    return render_template('demo3.html', html_var=user_var,list_test=list_test,dict_test=dict_test)



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

demo3.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>This is a Demo3 Page</h1>
<h2>It is only using for test</h2>
這是傳輸過來的變量:{{ html_var }}<br>
<h2>清單使用:</h2>
{{ list_test }}<br>
{{ list_test.1 }}<br>
{{ list_test[2] }}<br>
<h2>dict使用:</h2>
{{ dict_test }}<br>
{{ dict_test.name }}<br>
{{ dict_test['key']}}<br>
</body>
</html>      

頁面效果:

Flask學習(二)——Jinja2模闆引擎

控制語句

在{% %}中進行寫控制語句

{% for num in list_test %}
    {% if num > 2 %}
    {{ num }}<br>
{% endfor %}      

過濾器的基本使用

{{ var_test|upper }}      

常見的過濾器

過濾器名 說明
safe 渲染時不轉義
capitalize 把值的首字母大寫,其餘小寫
lower 把值轉換成小寫形式
upper 把值轉換成大寫形式
title 把值中每個單詞的首字母都轉換成大寫
trim 把值的首位空格去掉