【Flask】Jinja2之测试器的应用
生活随笔
收集整理的這篇文章主要介紹了
【Flask】Jinja2之测试器的应用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
測試器總是返回一個布爾值,它可以用來測試一個變量或者表達式,使用”is”關鍵字來進行測試。
測試器本質上也是一個函數,它的第一個參數就是待測試的變量,在模板中使用時可以省略去。如果它有第二個參數,模板中就必須傳進去。測試器函數返回的必須是一個布爾值,這樣才可以用來給if語句作判斷。
1、Jinja2中內置的測試器
模板文件
視圖
from flask import Flask,render_template import re #todo 初始化Flask項目的服務 app = Flask(__name__)@app.route('/test_demo1') def hello_world():return render_template('09-測試器.html')if __name__ == '__main__':#0.0.0.0:代表當前的系統的所有的ip地址,# 設置端口為8080,# flask的debug模式:把錯誤的信息顯示到頁面中app.run(host='0.0.0.0',port=8080,debug=True)運行結果:
2、自定義測試器
注冊測試器的方法一:
app.jinja2_env.tests[‘測試器名稱’]=定義的測試器
例如:
注冊測試器的方法二:
使用裝飾器
@app.template_test(‘函數名’)
例如
案例
視圖
from flask import Flask,render_template import re #todo 初始化Flask項目的服務 app = Flask(__name__)'''自定義測試器,首先創建函數,然后注冊''' def test_phone(phone): #測試手機號是否合法phone_re=r'1[3-9]\d{9}'return re.match(phone_re,phone)@app.template_test('start_with') def start_with(my_str,suffix):return my_str.lower().startswith(suffix.lower())#兩種注冊測試器的方法 app.jinja_env.tests['is_phone']=test_phoneif __name__ == '__main__':#0.0.0.0:代表當前的系統的所有的ip地址,# 設置端口為8080,# flask的debug模式:把錯誤的信息顯示到頁面中app.run(host='0.0.0.0',port=8080,debug=True)模板文件
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>測試器</title> </head> <body>{% if "1002343455" is is_phone %}<P>是手機號</P> {% else %}<P>不是手機號</P> {% endif %}{% if "werwe" is start_with('we') %}<P>是字符串以we開頭</P> {% else %}<P>不是字符串以we開頭</P> {% endif %}</body> </html>總結
以上是生活随笔為你收集整理的【Flask】Jinja2之测试器的应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Flask】Jinja2之模板中使用u
- 下一篇: 【Flask】Jinja2模板的使用及控