a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > Perl > 正文

在Django框架中自定義模板過濾器的方法

2020-06-04 20:33:12
字體:
來源:轉載
供稿:網友

自定義過濾器就是有一個或兩個參數的Python函數:

    (輸入)變量的值     參數的值, 可以是默認值或者完全留空

例如,在過濾器 {{ var|foo:"bar" }} 中 ,過濾器 foo 會被傳入變量 var 和默認參數 bar。

過濾器函數應該總有返回值。 而且不能觸發異常,它們都應該靜靜地失敗。 如果出現錯誤,應該返回一個原始輸入或者空字符串,這會更有意義。

這里是一些定義過濾器的例子:

def cut(value, arg):  "Removes all values of arg from the given string"  return value.replace(arg, '')

下面是一個可以用來去掉變量值空格的過濾器例子:

{{ somevariable|cut:" " }}

大多數過濾器并不需要參數。 下面的例子把參數從你的函數中拿掉了:

def lower(value): # Only one argument.  "Converts a string into all lowercase"  return value.lower()

當你定義完過濾器后,你需要用 Library 實例來注冊它,這樣就能通過Django的模板語言來使用了:

register.filter('cut', cut)register.filter('lower', lower)

Library.filter() 方法需要兩個參數:

    過濾器的名稱(一個字串)     過濾器函數本身

如果你使用的是Python 2.4或者更新的版本,你可以使用裝飾器register.filter():

@register.filter(name='cut')def cut(value, arg):  return value.replace(arg, '')@register.filterdef lower(value):  return value.lower()

如果你想第二個例子那樣不使用 name 參數,那么Django會把函數名當作過濾器的名字。

下面是一個完整的模板庫的例子,它包含一個 cut 過濾器:

from django import templateregister = template.Library()@register.filter(name='cut')def cut(value, arg):  return value.replace(arg, '')

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 亚洲天堂av中文字幕 | 久久久久久毛片免费观看 | 国产精品视频一区二区三区 | 亚洲乱码一区二区三区在线观看 | 亚洲一区成人在线 | 麻豆国产一区二区三区四区 | 福利三区 | 国产精品18久久久久久首页狼 | 国产精品一区二区三区av | 久久国产电影 | 国产艳妇av视国产精选av一区 | 黄色毛片免费看 | 久久久久久久一区 | 粉嫩高清一区二区三区 | 欧美午夜理伦三级在线观看 | 五月天婷婷国产精品 | 男女视频免费在线观看 | 成人精品视频在线观看 | 98久久久| jvid美女成人福利视频 | 91久久人人夜色一区二区 | av免费在线观看网站 | 成人在线免费 | 国产精品自产拍在线观看桃花 | 久久伊人成人 | 超碰在线看 | 国产91精品在线 | 日韩成人片| 日韩大片在线观看 | 在线视频日韩 | 午夜在线视频 | 久久九九视频 | 黄色片视频在线观看 | 日韩视频在线观看中文字幕 | 偷拍自拍亚洲色图 | 中文字幕 亚洲一区 | 免费在线一区二区三区 | 久久久久久久久久久久久女国产乱 | 欧美日本一区 | 成人超碰在线 | 久久久精品一区 |