1. 程式人生 > >Python Flask,模板,Jinja2模板,模板變數,過濾器

Python Flask,模板,Jinja2模板,模板變數,過濾器

 

demo.py(模板變數,過濾器):

# coding:utf-8

from flask import Flask, render_template  # 匯入render_template


app = Flask(__name__)


@app.route("/index")
def index():
    data = {
        "name": "python",
        "age": 18,
        "my_dict": {"city": "sz"},
        "my_list": [1, 2, 3, 4, 5],
        "my_int": 0
    }
    # 渲染模板
    return render_template("index.html", **data)  # 模板變數以鍵值對的形式傳。 (Django中直接傳字典,Flask需要拆包)


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

templates/index.html(模板):

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>模板</title>
</head>
<body>

    <p>name = {{ name }}</p>
    <p>age = {{ age }}</p>
    <p>my_dict: city= {{ my_dict["city"] }}</p>
    <p>my_dict: city= {{ my_dict.city }}</p>   <!-- 可以通過[]或.的方式獲取字典中對應鍵的值 -->
    <p>my_list: {{ my_list }}</p>    <!-- [1, 2, 3, 4, 5] -->
    <p>my_list[my_int]: {{ my_list[my_int] }}</p>  <!-- 通過[]的方式獲取列表中的值,下標可以是整型變數 -->
    <p>my_list[0] + my_list[1] = {{ my_list[0] + my_list[1] }}</p>  <!-- 模板變數可以直接進行算術運算。Django需要通過過濾器進行運算 -->
    <p>{{"hello" + " python" }}</p>    <!-- 字串可以直接進行拼接 -->

    <p>a{{"   flask world    " | trim | upper }}a</p>  <!-- 過濾器,支援鏈式使用過濾器 -->
    <p>{{ "<em>hello</em>" | safe }}</p>    <!-- 取消HTML轉義,預設轉義 -->

</body>
</html>

字串過濾器

safe:禁用Html轉義;

  <p>{{ '<em>hello</em>' | safe }}</p>

capitalize:把變數值的首字母轉成大寫,其餘字母轉小寫;

  <p>{{ 'hello' | capitalize }}</p>

lower:把值轉成小寫;

  <p>{{ 'HELLO' | lower }}</p>

upper:把值轉成大寫;

  <p>{{ 'hello' | upper }}</p>

title:把值中的每個單詞的首字母都轉成大寫;

  <p>{{ 'hello' | title }}</p>

trim:把值的首尾空格去掉;

  <p>{{ ' hello world ' | trim }}</p>

reverse:字串反轉;

  <p>{{ 'olleh' | reverse }}</p>

format:格式化輸出;

  <p>{{ '%s is %d' | format('name',17) }}</p>

striptags:渲染之前把值中所有的HTML標籤都刪掉;

  <p>{{ '<em>hello</em>' | striptags }}</p>

列表過濾器

first:取第一個元素

  <p>{{ [1,2,3,4,5,6] | first }}</p>

last:取最後一個元素

  <p>{{ [1,2,3,4,5,6] | last }}</p>

length:獲取列表長度

  <p>{{ [1,2,3,4,5,6] | length }}</p>

sum:列表求和

  <p>{{ [1,2,3,4,5,6] | sum }}</p>

sort:列表排序

  <p>{{ [6,2,3,1,5,4] | sort }}</p>