最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2015年07月20日 15:03:55   投稿:goldensun  
這篇文章主要介紹了在Django框架中自定義模板過(guò)濾器的方法,Django是重多人氣Python框架中最為著名的一個(gè),需要的朋友可以參考下

自定義過(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, '')

相關(guān)文章

  • perl上下文介紹

    perl上下文介紹

    了解perl的朋友,都知道perl上下文在perl編程中的重要性,這里粗淺的作下介紹,供初學(xué)的朋友參考
    2013-02-02
  • Perl讀寫文件簡(jiǎn)單示例

    Perl讀寫文件簡(jiǎn)單示例

    這篇文章主要介紹了Perl讀寫文件簡(jiǎn)單示例,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2015-04-04
  • Perl實(shí)現(xiàn)的Linux下socket代理服務(wù)器

    Perl實(shí)現(xiàn)的Linux下socket代理服務(wù)器

    這篇文章主要介紹了Perl實(shí)現(xiàn)的Linux下socket代理服務(wù)器,比較簡(jiǎn)潔的一個(gè)版本,需要的朋友可以參考下
    2014-08-08
  • Perl 哈希Hash用法之入門教程

    Perl 哈希Hash用法之入門教程

    本文和大家重點(diǎn)討論一下Perl Hash的用法,哈希是一種數(shù)據(jù)結(jié)構(gòu),和數(shù)組類似,但是,和數(shù)組不同的是,其索引不是數(shù)字,而是名字。也就是說(shuō),索引(這里,我們將它叫key)不是數(shù)字而是任意的唯一的字符串
    2013-02-02
  • 為Java程序員準(zhǔn)備的10分鐘Perl教程

    為Java程序員準(zhǔn)備的10分鐘Perl教程

    這10分鐘教程并不是Java和Perl的比較。目標(biāo)是探索作為Java開(kāi)發(fā)人員如何快速學(xué)習(xí)Perl。以下是一些從我的角度來(lái)看的關(guān)鍵筆記
    2013-11-11
  • Perl中use和require用法對(duì)比分析

    Perl中use和require用法對(duì)比分析

    Perl 中的use和require,都是用來(lái)加載和引用Perl的模塊,或者是子程序,區(qū)別在于Perl use是在當(dāng)前默認(rèn)的里面去尋找,一旦模塊不在指定的區(qū)域內(nèi)的化,用Perl use是不可以引入的
    2013-02-02
  • Perl學(xué)習(xí)基本備忘錄

    Perl學(xué)習(xí)基本備忘錄

    Perl學(xué)習(xí)基本備忘錄,包括perl數(shù)組、命令行執(zhí)行perl語(yǔ)句、perl引號(hào)規(guī)則、變量初始化、perl特殊變量等,有需要的朋友,可以參考下
    2013-02-02
  • perl 指定長(zhǎng)度并生成一個(gè)隨機(jī)的DNA序列的腳本代碼

    perl 指定長(zhǎng)度并生成一個(gè)隨機(jī)的DNA序列的腳本代碼

    perl 指定長(zhǎng)度并生成一個(gè)隨機(jī)的DNA序列的代碼,有需要的朋友可以參考下
    2013-03-03
  • About Perl(翻譯Perl官網(wǎng)介紹)

    About Perl(翻譯Perl官網(wǎng)介紹)

    這篇文章主要介紹了About Perl(翻譯Perl官網(wǎng)介紹),本文翻譯自Perl官網(wǎng)介紹,講解什么是Perl、Perl的歷史、Perl 5 特征、Perl在WEB環(huán)境下的使用等內(nèi)容,需要的朋友可以參考下
    2015-06-06
  • perl命令行參數(shù)內(nèi)建數(shù)組@ARGV淺析

    perl命令行參數(shù)內(nèi)建數(shù)組@ARGV淺析

    這篇文章主要介紹了perl命令行參數(shù)內(nèi)建數(shù)組@ARGV淺析,本文重點(diǎn)在于講解@ARGV的用法,并通過(guò)實(shí)例來(lái)說(shuō)明,需要的朋友可以參考下
    2014-06-06

最新評(píng)論

岳普湖县| 电白县| 襄城县| 开封县| 石景山区| 阿拉善右旗| 长宁县| 贺州市| 太谷县| 嫩江县| 新竹市| 瑞安市| 信阳市| 兰州市| 玉龙| 东乡| 潞城市| 丁青县| 米脂县| 肃南| 静海县| 安吉县| 洞口县| 嘉鱼县| 和林格尔县| 乡宁县| 道孚县| 慈溪市| 中超| 安顺市| 吉首市| 依安县| 衡山县| 牙克石市| 太谷县| 莎车县| 青铜峡市| 皋兰县| 永丰县| 西贡区| 井冈山市|