舉例
flask python**
from flask importflask, render_template, redirect, request
)student =
student_list =[,,
]student_dict =,
'b': ,
'c': ,}"
/detail")
defdetail():
print(url_for("
detail"))
return render_template("
detail.html
", **student)
"/detail_list
", )
defdetail_list():
return render_template("
detail_list.html
", stu_list=student_list)
"/detail_dict")
defdetail_dict():
return render_template("
detail_dict.html
", stu_dict=student_dict)
detail.html
"en">}
"1px
">
name
agegender
}}}
detail_list.html
"en">}
"1px
">
name
agegender
}}}
detail_dict.html
"en表示式">}
"1px
">
idname
agegender
}}}}
1.最常用的是變數,由flask渲染模板時傳過來,比如name控制語句也可以是任意一種python基礎型別,比如字串},用引號括起;或者數值,列表,元祖,字典,布林值。直接顯示基礎型別沒啥意義,一般配合其他表示式一起用
2.運算。包括算數運算,如};比較運算,如};邏輯運算,如}
3.過濾器|和測試器is
4.函式呼叫,如};陣列下標操作,如}
in操作符,如}
5.字串連線符~,作用同python中的+一樣,如}
6.none值處理
jinja2的控制語句主要就是條件控制語句if,和迴圈控制語句for,語法類似於python字串if-else
:
for:
}
}}數值操作}}}}
}}
}}列表操作}
#字典取第乙個元素 #}}}
}}}}
}
自定義過濾器
#使用第一種方式
defget_even_list(l):
return l[::2]
#函式的第乙個引數是過濾器函式,第二個引數是過濾器名稱
even_filter')
#第二種方式
過濾器函式
defis_even(num):
if num % 2 ==0:
return
"even number
"else
:
return
"odd number
"
}測試器總是返回乙個布林值,它可以用來測試乙個變數或者表示式,使用」is」關鍵字來進行測試。}
測試器本質上也是乙個函式,它的第乙個引數就是待測試的變數,在模板中使用時可以省略去。如果它有第二個引數,
模板中就必須傳進去。測試器函式返回的必須是乙個布林值,這樣才可以用來給if語句作判斷。
內建測試器
舉例
name is: }官方文件
自定義測試器
定義
#使用自定義測試器
#第一種方式
import
redef
test_tel(tel_num):
tel_re = r'\d'
return
re.match(tel_re,tel_num)
"is_tel")
#第二種方式
start_with')
defstart_with(str, suffix):
return str.lower().startswith(suffix.lower())
內建全域性函式
}' #}} }官方文件
自定義全域性函式
定義
#使用自定義全域性函式
#第一種方式
def add_sum(*args):
return
sum(args)
#第二種方式
import
time
def current_time(timeformat="
%b %d, %y - %h:%m:%s"):
return
time.strftime(timeformat)
'current_time
')
}一般我們的**雖然頁面多,但是很多部分是重用的,比如頁首,頁尾,導航欄之類的。對於每個頁面,都要寫這些**,很麻煩。current time is: }
current day is: }
flask的jinja2模板支援模板繼承功能,省去了這些重複**。
template:
你好,template1extend:你好,template2
你好,template
flask框架模板jinja2
from flask import flask,render template from flask script import manager def index return this is index def template return render template file01.htm...
Flask框架(二)模板引擎JinJa2
三.巨集操作 jinja2 是乙個現代的,設計者友好的,仿照 django 模板的 python 模板語言。它速度快,被廣泛使用,並且提供了可選的沙箱模板執行環境保證安全 hello lower safe 渲染值時不轉義 capitalize 把值的首字母轉換成大寫,其他字母轉換成小寫 lower ...
flask之二 jinja2知識彙總
1.jinja2模板 1.1 控制 塊 jinja2主要負責渲染網頁。其主要分為變數 塊 和控制 塊。變數 塊主要用於變數的內容顯示,控制 塊可以控制顯示的內容。控制 塊的語句主要有 if else,for 兩種。1.2 過濾器 過濾器也是一種控制html顯示的常用方法。常用的過濾器有upper,l...