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