主頁(yè) > 知識(shí)庫(kù) > 在Django框架中自定義模板過(guò)濾器的方法

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

熱門標(biāo)簽:熱門電銷機(jī)器人 萬(wàn)利達(dá)百貨商場(chǎng)地圖標(biāo)注 上海企業(yè)外呼系統(tǒng) 河南虛擬外呼系統(tǒng)公司 智能機(jī)器人電銷神器 okcc外呼系統(tǒng)怎么調(diào)速度 電話機(jī)器人哪里有賣 外呼電信系統(tǒng) 惠州龍門400電話要怎么申請(qǐng)

自定義過(guò)濾器就是有一個(gè)或兩個(gè)參數(shù)的Python函數(shù):

  •     (輸入)變量的值
  •     參數(shù)的值, 可以是默認(rèn)值或者完全留空

例如,在過(guò)濾器 {{ var|foo:"bar" }} 中 ,過(guò)濾器 foo 會(huì)被傳入變量 var 和默認(rèn)參數(shù) bar。

過(guò)濾器函數(shù)應(yīng)該總有返回值。 而且不能觸發(fā)異常,它們都應(yīng)該靜靜地失敗。 如果出現(xiàn)錯(cuò)誤,應(yīng)該返回一個(gè)原始輸入或者空字符串,這會(huì)更有意義。

這里是一些定義過(guò)濾器的例子:

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

下面是一個(gè)可以用來(lái)去掉變量值空格的過(guò)濾器例子:

{{ somevariable|cut:" " }}

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

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

當(dāng)你定義完過(guò)濾器后,你需要用 Library 實(shí)例來(lái)注冊(cè)它,這樣就能通過(guò)Django的模板語(yǔ)言來(lái)使用了:

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

Library.filter() 方法需要兩個(gè)參數(shù):

  •     過(guò)濾器的名稱(一個(gè)字串)
  •     過(guò)濾器函數(shù)本身

如果你使用的是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()

如果你想第二個(gè)例子那樣不使用 name 參數(shù),那么Django會(huì)把函數(shù)名當(dāng)作過(guò)濾器的名字。

下面是一個(gè)完整的模板庫(kù)的例子,它包含一個(gè) cut 過(guò)濾器:

from django import template

register = template.Library()

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

您可能感興趣的文章:
  • 深入理解Django的自定義過(guò)濾器
  • 詳解django中自定義標(biāo)簽和過(guò)濾器
  • 詳解Django中的過(guò)濾器
  • Go語(yǔ)言實(shí)現(xiàn)布谷鳥過(guò)濾器的方法

標(biāo)簽:周口 綏化 綿陽(yáng) 合肥 秦皇島 淮安 百色 周口

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《在Django框架中自定義模板過(guò)濾器的方法》,本文關(guān)鍵詞  在,Django,框架,中,自定義,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《在Django框架中自定義模板過(guò)濾器的方法》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于在Django框架中自定義模板過(guò)濾器的方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章