1,flask中內置的過濾器模板中常用方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
{ #過濾器調用方式{{變量|過濾器名稱}} #} <! - - safe過濾器,可以禁用轉義 - - > {{ '<strong>hello</strong>' |safe}} <br / > 大寫轉小寫 {{ 'hello' |lower}} 小寫轉大寫 {{ 'hello' |upper}} <br / > 字符串反轉 {{ 'abc' |reverse}} 首字母大寫 {{ 'james' |capitalize}} 過濾html標簽 {{ '<em>apple</em>' | striptags}} <br / > 只顯示 list 首個元素 {{[ 100 , 95 , 55 , 81 ]|first}} 只顯示 list 最后一個元素 {{[ 100 , 95 , 55 , 81 ]|last}} 顯示 list 的長度 {{[ 100 , 95 , 55 , 81 ]|length}} list 里所有元素求和 {{[ 100 , 95 , 55 , 81 ]| sum }} list 進行排序 {{[ 100 , 95 , 55 , 81 ]|sort}} format :格式化輸出 {{ '%s is %d' | format ( 'name' , 17 ) }} <br / > 對語句塊進行過濾 { % filter upper % } qwedr,tyuio,piuytre,rtyuiuyt afaife oifafa, afaf { % endfilter % } <br / > 鏈式調用過濾器 {{ 'abc' |reverse|upper}} <br><br> 自定義過濾器 {{ 100 |my_filter}} |
自定義過濾器(后端視圖函數)
1
2
3
4
|
@app .template_filter( "my_filter" ) #自定義過濾器 def my_filter(val): return '$' + str (val) |
2,django中內置的過濾器模板中常用方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
{ #通過內置過濾器實現加減法#} {{test_int | add: 10 }} {{ list . 0 }} <br> { % for i in list % } {{i}} { #打印索引 從1開始的計數器#} {{forloop.counter}} { #打印數組索性#} {{forloop.counter0}} { #倒序索引#} {{forloop.revcounter}} <br> { % endfor % } <br> { % for i in dict % } { #取首位和末尾 first last#} 姓名:{{i.name |first}} 年齡:{{i.age}} { % endfor % } <br> { #大寫小寫#} {{ 'jack' | upper | lower}} { #返回長度#} {{ '123456' | length}} { #截斷操作#} {{content | truncatechars: 10 }} 截斷單詞{{content | truncatewords: 2 }} { # 格式化日期#} {{dt | date: 'y-m-d h:i:s' }} |
自定義過濾器(后端視圖函數)
首先在工程文件的同名配置文件下創建templatetags文件夾,建立myfiler.py用來自定義過濾器
例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
from django import template #注冊過濾器對象 register = template.library() #自定義過濾器 #通過裝飾器的方式來注冊自定義過濾器 @register . filter def my_str(val): return "$" + str (val) #定義一個雙參數過濾器 @register . filter def my_str_two(val,p1): return val + p1 #定義一個多參數的過濾器 #注冊過濾器的時候,需要注冊simple_tag @register .simple_tag def my_str_many(val,p1,p2): return val + p1 + p2 #定義一個取余數的過濾器 @register . filter def get_line(val): return int (val) % 2 |
在templates文件夾中模板文件中導入
{#導入過濾器文件#}
{% load myfilter %}
1
2
3
4
5
6
7
8
9
|
{ #導入過濾器文件#} { % load my_filter % } {{test_str | my_str}} { # 兩個參數進行調用#} {{ '你好' | my_str_two: "不好" }} { #調用多參數的過濾器#} { % my_str_many '你好' '不好' '啊' % } {{test_list | length}} |
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。
原文鏈接:https://www.cnblogs.com/xcsg/p/10310897.html