flask基礎之jijia2模板使用基礎(二)

2022-07-05 00:18:12 字數 3585 閱讀 3350

在以前前後端不分離的時代,後台程式設計師往往又當爹又當媽,需要將前端程式設計師寫的h5頁面填充模板語言。而jijia2是一門十分強大的python的模板語言,是flask框架的核心模組之一。先簡單介紹一下jijia2模板的用法。

模板可以說是直接展示給客戶端的,那麼在模板中有檢視函式傳遞給模板的普通變數和可以直接使用的全域性變數。

}

# 模板中的變數

# 用來執行賦值或條件或判斷語句

# 注釋

bar.per  # 先查詢bar物件是否有per屬性,再查詢是否有per物件(如字典中的鍵值對);

bar['per'] # 先查詢是否有per物件(如字典中的鍵值對),再查詢bar物件是否有per屬性;

# 如果沒有找到,則返回未定義物件,預設用空字串替代;

# render_template

render_template函式會模板和傳遞的變數值進行組裝

# 自定義的兩個變數名context和message可以在模板中使用

render_template('sleeps/sleep.html',context=users,message=data)

# render_template_string方法也可以傳遞變數名

render_template_string('ok

ok', name='aaaa')

即不需要顯性的傳遞,可以直接使用的變數

# 通過request可以直接獲取相關的屬性

}

過濾器的使用方式為:變數名 | 過濾器。如:}

default:如果該變數未定義或找不到,使用預設的值;

length:獲取字串,列表,元組,字典的長度

random(seq):從序列中返回乙個隨機項;

replace(value,old,new,count=none):將old替換為new的字串,count設定替換的次數;

abs:返回乙個數字的絕對值;

round:四捨五入取整;

round(2,'floor'):擷取小數點後兩位;'floor'向下擷取,'ceil'向上擷取,'common'四捨五入,預設的;

int(value):將值轉換為int型別。

float(value):將值轉換為float型別。

groupby(value, attribute):分組;

reverse:將迭代器反轉;

select,selectattr:對序列中進行過濾,返回判斷為true的元素組成的列表;

reject,rejectattr:對序列中進行過濾,返回判斷為false的元素組成的列表;

safe:禁用轉義;

string(value):將變數轉換成字串。

list(value):將值轉換成列表

wordcount(s):計算乙個長字串中單詞的個數

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

truncate(value,length=255,killwords=false):擷取length長度的字串。

lower:把值轉成小寫;

upper:把值轉成大寫;

title:把值中的每個單詞的首字母都轉成大寫;適用於一句話;

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

format:格式化輸出;如: }

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

escape:轉義字元,會將<、>等符號轉義成html中的符號。

wordwrap(s, width=79, break_long_words=true, wrapstring=none):將字串分成指定長度乙份,如}

first:取列表的第乙個元素,如:}

last:取最後乙個元素

sum:列表求和,如果不能計算會報錯;

sort:列表排序,預設按公升序排列;

batch:對列表分組,形成二維列表,如:},2個元素一組,不足的使用'ff『替代;

join:拼接列表中的元素;如:};

upper,lower:將列表中所有的字串改變大小寫;

slice:切片,返回二維列表,slice(2)設定步長

dictsort(value, case_sensitive=false, by='key'):按鍵的首字母順序排序,並生成列表;

如: | dictsort }},結果:[('name',"xx"),('age','23')]

sort:排序;

| sort(attribute='age', reverse=true) }} # 按指定的字段,降序排列,預設公升序;

attr:獲取物件的屬性;如: | attr('age') }}

map(value,attribute):提取值中的某一項組成乙個列表;如:},age組成乙個字典;

pprint(value, verbose=false):輸出乙個變數;
filesizeformat(value, binary=false):將值格式化成檔案的大小,如4.1 mb, 102 bytes等;如果binary=true則為二進位制;
注意:自定義的過濾器名稱如果和內建的過濾器重名,會覆蓋內建的過濾器。

方法一:

過濾器其實是乙個函式,可以自定義乙個函式,然後通過flask的add_template_filter將我們的函式加入到過濾器表單中;

def funcx(ls):

return ls+3

方法二:

使用template_filter函式和裝飾器的方式實現;

def funcx(ls):

return ls+3

全域性函式是任意函式,可以在任一場景使用,沒有輸入和輸出值的限制。其變數相當於python中的全域性變數;

使用方式:

# 定義乙個全域性變數
range([start], stop[, step]):和python中的range的用法完全一樣;

dict():傳入鍵值對,可以生成字典;

joiner():可以初始化為乙個分隔符,然後第一次呼叫時返回空字串,以後再呼叫則返回分隔符。對分隔迴圈中的內容很有幫助

cycler():這是乙個類,週期計允許你在若干個值中迴圈,傳入多個值,在多個值中迴圈;

# cycler有三個函式

reset():重置週期計到第乙個項。

current:返回當前項。

lipsum(n=5, html=true, min=20, max=100):在模板中生成 lorem ipsum 亂數假文。缺省會生成 5 段 html ,每段在 20 到 100 詞之間。用來測試;

# 註冊全域性函式

# 使用裝飾器

def funcx(ls):

return ls+3

jijia2中的過濾器使用

什麼是過濾器 模板中有些變數沒有辦法直接拿來使用,需要處理之後才能使用。比如變數是小寫的,我想用大寫的。過濾器就是將沒辦法直接使用的變數,轉換成能使用的函式。原理,就是將變數作為物件,傳給函式,然後輸出符合需求的變數。過期使用方法 固定格式為 常用的過濾器 1.取引數的絕對值 abs 2.個性簽名,...

Python Web 之Flask基礎(一)

flask 的基本使用 flask 1.0 文件 依賴 當安裝 flask 時,以下配套軟體會被自動安裝。可選依賴 以下配套軟體不會被自動安裝。如果安裝了,那麼 flask 會檢測到這些軟體。建立乙個專案資料夾,然後建立乙個虛擬環境。mkdir myproject cd myproject pyth...

flask基礎之十二控制語句

控制 塊主要包含兩個 if else if else endif for endfor jinja2 語法中的if語句跟 python 中的 if 語句相似,後面的布林值或返回布林值的表示式將決定 中的哪個流程會被執行 logout login 過濾器可以被用在 if 語句中 there are c...