3 jinja2模板

 

 

video17 jinja2過濾器html

過濾器經過管道符號進行使用。如{{ name | length }}將返回name的長度,過濾器至關因而一個函數。python

1 def hello_world():
2     intro = ''  #這裏爲空或None時候會顯示默認值。
3     return render_template('index.html',intro=intro)
4 
5 {{ intro | default('此人很懶,沒留下信息。',boolean =True)}}
或者:
{{ intro or '此人很懶,沒留下信息。' }}


這裏的or和python中同樣,都爲真則取第一個,都爲假就取後一個。app

 

 

video20 自定義過濾器ide

如下爲一個字符串替換的過濾器。函數

 1 @app.route('/')
 2 def hello_world():
 3     intro = 'hello,world!what are you...?'
 4 
 5     return render_template('index.html',intro=intro)
 6 
 7 @app.template_filter('my_cut')
 8 def cut(value):
 9     value = str(value).replace('hello','Hi')
10     return value
11 
12 
13 {{ intro | my_cut }}

下面講一個時間戳的過濾器。spa

 1 @app.route('/')
 2 def hello_world():
 3     intro = 'hello,world!what are you...?'
 4     create_time = datetime(2019,8,15,12,32,15)  #設置任意時間
 5     return render_template('index.html',intro=intro,create_time=create_time)
 6 
 7 @app.template_filter('handle_time')  #設置過濾器名稱
 8 def handle_time(time):
 9     if isinstance(time,datetime):
10         now = datetime.now()
11         timestamp = (now - time).total_seconds()  #換算爲秒
12         if timestamp < 60:
13             return '剛剛'
14         elif timestamp >= 60 and timestamp < 60* 60:
15             return "%s分鐘前" %str(int(timestamp / 60))
16         elif timestamp >= 60 * 60 and timestamp < 60 * 60 * 24:
17             return "%s小時前" % str(int(timestamp / 60 / 60))
18         elif timestamp > 60 * 60 * 24:
19             return time.strftime('%Y/%m%d %H:%M')  #按照‘2019/0815 12:32’格式輸出
20     else:
21         return time.strftime('%Y/%m%d %H:%M')
22 
23 
24 {{ create_time | handle_time }}

 

 

video22 條件判斷3d

 video23 for循環code

 video25 宏htm

這部分請移步:http://www.javashuo.com/article/p-eulclzse-dn.htmlblog

相關文章
相關標籤/搜索