日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Flask框架(flask模板(jinja2)与字符串过滤器、列表过滤器以及自定义过滤器)

發布時間:2024/9/30 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Flask框架(flask模板(jinja2)与字符串过滤器、列表过滤器以及自定义过滤器) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

模板變量 : {{name}}

1. 模板的定義: 模板變量 : {{name}}
2. 模板的渲染: ?render_template("模板名字",鍵=值,鍵=值)
? ? ? ? 例如: ?render_template("index.html",name="python",age="18")
? ? ? 如果傳值的話,想要直接在渲染函數里面直接傳字典則:
? ? ? 可以事先定義好一個字典data,然后,render_template("index.html",**data)

首先是模板,里面的變量的寫法和python的是一樣的,? ?如下面的? ?index.html? (放在自建的templates目錄下面)

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>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><p>my_list[my_int] : {{my_list[my_int] }}</p><p>my_list[0] + my_list[1] : {{ my_list[0] + my_list[1] }}</p> </body> </html>

然后在程序中怎么進行渲染

from flask import Flask, render_templateapp = 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}# ?render_template("index.html",name="python",age="18") """也可以進行直接傳遞一個字典進去,但是字典的前面要加上兩個星號"""return render_template("index.html", **data)if __name__ == '__main__':app.run(debug=True)

運行的結果,就會按照模板里面取里面的值的方式,取出相應的值,? ? 輸入127.0.0.1:5000/index

? ?

?過濾器

1.字符串過濾器

safe:禁用轉義;

? <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>

2.支持鏈式使用過濾器

<p>{{ “ hello world? “ | trim | upper }}</p>

3.列表過濾器

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>

?

自定義的過濾器

自定義的過濾器名稱如果和內置的過濾器重名,會覆蓋內置的過濾器。

方式一:

???????? 通過 add_template_filter (過濾器函數, 模板中使用的過濾器名字)

def list_step_2(li):"""自定義的過濾器"""return li[::2] # 讓列表隔一個取一個"""自定義的過濾器要進行注冊""" # 第一個參數是函數名,第二個是過濾器名字 app.add_template_filter(list_step_2,"li2")

方式二:

???????? 通過裝飾器? app.template_filter (模板中使用的裝飾器名字)

@app.add_template_filter("li") def list_step_2(li):"""自定義的過濾器"""return li[::2] # 讓列表隔一個取一個

在模板中直接接收:

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Title</title> </head> <body><p>{{my_list | li2}}</p> </body> </html>

?

總結

以上是生活随笔為你收集整理的Flask框架(flask模板(jinja2)与字符串过滤器、列表过滤器以及自定义过滤器)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。