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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

【Flask】Jinja2之测试器的应用

發布時間:2025/3/21 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Flask】Jinja2之测试器的应用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

測試器總是返回一個布爾值,它可以用來測試一個變量或者表達式,使用”is”關鍵字來進行測試。

測試器本質上也是一個函數,它的第一個參數就是待測試的變量,在模板中使用時可以省略去。如果它有第二個參數,模板中就必須傳進去。測試器函數返回的必須是一個布爾值,這樣才可以用來給if語句作判斷。

1、Jinja2中內置的測試器


模板文件

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>測試器</title> </head> <body> {# 檢查變量是否被定義,也可以用undefined檢查是否未被定義 #} {% if name is defined %}<p>Name is: {{ name }}</p> {% endif %}{% if name is undefined %}<P>name沒有被定義</P> {% endif %}{# 定義變量 #} {% set name='zilv' %}{# 檢查是否所有字符都是大寫 #} {% if name is upper %}<h2>"{{ name }}" are all upper case.</h2> {% endif %}{# 檢查變量是否為空 #} {% if name is none %}<h2>Variable is none.</h2> {% endif %}{# 檢查變量是否為字符串,也可以用number檢查是否為數值 #} {% if name is string %}<h2>{{ name }} is a string.</h2> {% endif %}{# 檢查數值是否是偶數,也可以用odd檢查是否為奇數 #} {% if 2 is even %}<h2>Variable is an even number.</h2> {% endif %}{# 檢查變量是否可被迭代循環,也可以用sequence檢查是否是序列 #} {% if [1,2,3] is iterable %}<h2>Variable is iterable.</h2> {% endif %}{# 檢查變量是否是字典 #} {% if {'name':'test'} is mapping %}<h2>Variable is dict.</h2> {% endif %}</body> </html>

視圖

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[‘測試器名稱’]=定義的測試器
例如:

def test_phone(phone): #測試手機號是否合法phone_re=r'1[3-9]\d{9}'return re.match(phone_re,phone)app.jinja_env.tests['is_phone']=test_phone

注冊測試器的方法二:

使用裝飾器
@app.template_test(‘函數名’)

例如

@app.template_test('start_with') def start_with(my_str,suffix):return my_str.lower().startswith(suffix.lower())

案例

視圖

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之测试器的应用的全部內容,希望文章能夠幫你解決所遇到的問題。

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