校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 在Django框架中自定義模板過濾器的方法

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

熱門標簽:熱門電銷機器人 萬利達百貨商場地圖標注 上海企業外呼系統 河南虛擬外呼系統公司 智能機器人電銷神器 okcc外呼系統怎么調速度 電話機器人哪里有賣 外呼電信系統 惠州龍門400電話要怎么申請

自定義過濾器就是有一個或兩個參數的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.filter
def lower(value):
  return value.lower()

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

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

from django import template

register = template.Library()

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

您可能感興趣的文章:
  • 深入理解Django的自定義過濾器
  • 詳解django中自定義標簽和過濾器
  • 詳解Django中的過濾器
  • Go語言實現布谷鳥過濾器的方法

標簽:周口 綏化 綿陽 合肥 秦皇島 淮安 百色 周口

巨人網絡通訊聲明:本文標題《在Django框架中自定義模板過濾器的方法》,本文關鍵詞  在,Django,框架,中,自定義,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《在Django框架中自定義模板過濾器的方法》相關的同類信息!
  • 本頁收集關于在Django框架中自定義模板過濾器的方法的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 镶黄旗| 弋阳县| 榆树市| 青川县| 祥云县| 汽车| 修文县| 通榆县| 恭城| 巧家县| 新沂市| 黎城县| 泸定县| 大埔县| 游戏| 益阳市| 湟源县| 秭归县| 南充市| 北票市| 扬州市| 锦州市| 安康市| 电白县| 炉霍县| 新平| 蒲江县| 长丰县| 安国市| 海南省| 南澳县| 裕民县| 夏河县| 维西| 拜城县| 稷山县| 昭苏县| 双鸭山市| 额济纳旗| 鹿邑县| 汝阳县|