【Flask】jinja2过滤器的使用
使用情景…
遇到一個(gè)bug:在數(shù)據(jù)庫(kù)中存的數(shù)據(jù),取出到前端后自帶換行,(導(dǎo)致js中的引號(hào)、分號(hào)直接被換到下一行),js無(wú)法正常讀取數(shù)據(jù)。猜測(cè)可能是在數(shù)據(jù)錄入的時(shí)候輸入了什么特殊符號(hào),但是把數(shù)據(jù)刪掉重新錄入讀取出來(lái)之后還是自帶換行(在python后臺(tái)輸出也是,前端也是),于是想出使用jinja模板中的trim,截掉前后的空白字符,問題暫時(shí)解決。
示例:
{% for node in result %}var obj = new Object();obj.id ={{ node.id }};obj.pId ={{ node.pid }};obj.text = '{{ node.name|trim }}'; // 取出的數(shù)據(jù)含有換行 使用trim過濾obj.attributes = {};obj.attributes['filename'] = '{{ node.filename }}';obj.attributes['url'] = '{{ node.url }}';zNodes.push(obj); {% endfor %}Jinja模板的過濾器
過濾器是通過|符號(hào)進(jìn)行使用的,例如:{{ name|length }}:將返回name的長(zhǎng)度。
Jinja2擁有許多過濾器:
abs(value):返回一個(gè)數(shù)值的絕對(duì)值。示例:-1|abs
default(value,default_value,boolean=false):如果當(dāng)前變量沒有值,則會(huì)使用參數(shù)中的值來(lái)代替。
示例:name|default('xiaotuo')
——如果name不存在,則會(huì)使用xiaotuo來(lái)替代。boolean=False默認(rèn)是在只有這個(gè)變量為undefined的時(shí)候才會(huì)使用default中的值,如果想使用python的形式判斷是否為false,則可以傳遞boolean=true。也可以使用or來(lái)替換。
escape(value)或e:轉(zhuǎn)義字符,會(huì)將<、>等符號(hào)轉(zhuǎn)義成HTML中的符號(hào)。示例:content|escape或content|e。
first(value):返回一個(gè)序列的第一個(gè)元素。示例:names|first
format(value,*arags,**kwargs):格式化字符串。比如:
{{ "%s" - "%s"|format('Hello?',"Foo!") }}
將輸出:Helloo? - Foo!
last(value):返回一個(gè)序列的最后一個(gè)元素。示例:names|last。
length(value):返回一個(gè)序列或者字典的長(zhǎng)度。示例:names|length。
join(value,d=u''):將一個(gè)序列用d這個(gè)參數(shù)的值拼接成字符串。
safe(value):如果開啟了全局轉(zhuǎn)義,那么safe過濾器會(huì)將變量關(guān)掉轉(zhuǎn)義。示例:content_html|safe。
int(value):將值轉(zhuǎn)換為int類型。
float(value):將值轉(zhuǎn)換為float類型。
lower(value):將字符串轉(zhuǎn)換為小寫。
upper(value):將字符串轉(zhuǎn)換為小寫。
replace(value,old,new): 替換將old替換為new的字符串。
truncate(value,length=255,killwords=False):截取length長(zhǎng)度的字符串。
striptags(value):刪除字符串中所有的HTML標(biāo)簽,如果出現(xiàn)多個(gè)空格,將替換成一個(gè)空格。
trim:截取字符串前面和后面的空白字符。
string(value):將變量轉(zhuǎn)換成字符串。
wordcount(s):計(jì)算一個(gè)長(zhǎng)字符串中單詞的個(gè)數(shù)。
總結(jié)
以上是生活随笔為你收集整理的【Flask】jinja2过滤器的使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Redis】杂项基础知识;Redis数
- 下一篇: 【Git】Git 修改刚提交的 comm