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

剖析Django中模版標(biāo)簽的解析與參數(shù)傳遞

 更新時(shí)間:2015年07月21日 09:09:34   投稿:goldensun  
這篇文章主要介紹了剖析Django中模版標(biāo)簽的解析與參數(shù)傳遞,Django是重多高人氣Python框架中最為著名的一個(gè),需要的朋友可以參考下

分析直至另一個(gè)模板標(biāo)簽

模板標(biāo)簽可以像包含其它標(biāo)簽的塊一樣工作(想想 {% if %} 、 {% for %} 等)。 要?jiǎng)?chuàng)建一個(gè)這樣的模板標(biāo)簽,在你的編譯函數(shù)中使用 parser.parse() 。

標(biāo)準(zhǔn)的 {% comment %} 標(biāo)簽是這樣實(shí)現(xiàn)的:

def do_comment(parser, token):
  nodelist = parser.parse(('endcomment',))
  parser.delete_first_token()
  return CommentNode()

class CommentNode(template.Node):
  def render(self, context):
    return ''

parser.parse() 接收一個(gè)包含了需要分析的模板標(biāo)簽名的元組作為參數(shù)。 它返回一個(gè)django.template.NodeList實(shí)例,它是一個(gè)包含了所有Node對(duì)象的列表,這些對(duì)象是解析器在解析到任一元組中指定的標(biāo)簽之前遇到的內(nèi)容.

因此在前面的例子中, nodelist 是在 {% comment %} 和 {% endcomment %} 之間所有節(jié)點(diǎn)的列表,不包括 {% comment %} 和 {% endcomment %} 自身。

在 parser.parse() 被調(diào)用之后,分析器還沒(méi)有清除 {% endcomment %} 標(biāo)簽,因此代碼需要顯式地調(diào)用 parser.delete_first_token() 來(lái)防止該標(biāo)簽被處理兩次。

之后 CommentNode.render() 只是簡(jiǎn)單地返回一個(gè)空字符串。 在 {% comment %} 和 {% endcomment %} 之間的所有內(nèi)容都被忽略。
分析直至另外一個(gè)模板標(biāo)簽并保存內(nèi)容

在前一個(gè)例子中, do_comment() 拋棄了{(lán)% comment %} 和 {% endcomment %} 之間的所有內(nèi)容。當(dāng)然也可以修改和利用下標(biāo)簽之間的這些內(nèi)容。

例如,這個(gè)自定義模板標(biāo)簽{% upper %},它會(huì)把它自己和{% endupper %}之間的內(nèi)容變成大寫(xiě):

{% upper %}
  This will appear in uppercase, {{ user_name }}.
{% endupper %}

就像前面的例子一樣,我們將使用 parser.parse() 。這次,我們將產(chǎn)生的 nodelist 傳遞給 Node :

def do_upper(parser, token):
  nodelist = parser.parse(('endupper',))
  parser.delete_first_token()
  return UpperNode(nodelist)

class UpperNode(template.Node):
  def __init__(self, nodelist):
    self.nodelist = nodelist

  def render(self, context):
    output = self.nodelist.render(context)
    return output.upper()

這里唯一的一個(gè)新概念是 UpperNode.render() 中的 self.nodelist.render(context) 。它對(duì)節(jié)點(diǎn)列表中的每個(gè) Node 簡(jiǎn)單的調(diào)用 render() 。

相關(guān)文章

  • Python 字符串操作詳情

    Python 字符串操作詳情

    這篇文章主要介紹了Python 字符串操作,所謂字符串,就是由0個(gè)或者多個(gè)字符組成的有限序列,字符串的字符可以是特殊符號(hào)、英文字母、中文字符、日文的平假名或片假名、希臘字母、Emoji字符等等。下面我們大家一起來(lái)學(xué)習(xí)文章詳細(xì)內(nèi)容吧
    2021-11-11
  • 深入淺析python3中的unicode和bytes問(wèn)題

    深入淺析python3中的unicode和bytes問(wèn)題

    在python3中,有兩種字符串類(lèi)型,默認(rèn)的就是str,即unicode,也叫做文本類(lèi)型。這篇文章主要介紹了python3中的unicode和bytes問(wèn)題,需要的朋友可以參考下
    2019-07-07
  • python 含子圖的gif生成時(shí)內(nèi)存溢出的方法

    python 含子圖的gif生成時(shí)內(nèi)存溢出的方法

    今天小編就為大家分享一篇python 含子圖的gif生成時(shí)內(nèi)存溢出的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-07-07
  • python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5單行文本框控件QLineEdit詳細(xì)使用方法與實(shí)例

    python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5單行文本框控件QLineEdit詳細(xì)使用方法與實(shí)例

    這篇文章主要介紹了python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5單行文本框控件QLineEdit詳細(xì)使用方法與實(shí)例,需要的朋友可以參考下
    2020-02-02
  • python?spotlight庫(kù)簡(jiǎn)化交互式方法探索數(shù)據(jù)分析

    python?spotlight庫(kù)簡(jiǎn)化交互式方法探索數(shù)據(jù)分析

    這篇文章主要為大家介紹了python?spotlight庫(kù)簡(jiǎn)化的交互式方法探索數(shù)據(jù),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • Windows下python2.7.8安裝圖文教程

    Windows下python2.7.8安裝圖文教程

    這篇文章主要為大家詳細(xì)介紹了Windows下python2.7.8安裝圖文教程,在安裝過(guò)程中出現(xiàn)“python不是內(nèi)部或外部命令”提示的解決方法,感興趣的小伙伴們可以參考一下
    2016-05-05
  • Jetson?NX?配置?pytorch的問(wèn)題及解決方法

    Jetson?NX?配置?pytorch的問(wèn)題及解決方法

    這篇文章主要介紹了Jetson?NX?配置?pytorch的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03
  • Python簡(jiǎn)單生成8位隨機(jī)密碼的方法

    Python簡(jiǎn)單生成8位隨機(jī)密碼的方法

    這篇文章主要介紹了Python簡(jiǎn)單生成8位隨機(jī)密碼的方法,結(jié)合實(shí)例形式分析了2種簡(jiǎn)單生成隨機(jī)密碼的方法,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下
    2017-05-05
  • python能在瀏覽器能運(yùn)行嗎

    python能在瀏覽器能運(yùn)行嗎

    在本篇文章里小編給大家整理了關(guān)于python能否在瀏覽器能運(yùn)行的相關(guān)知識(shí)點(diǎn)內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。
    2020-06-06
  • Python?jiaba庫(kù)的使用詳解

    Python?jiaba庫(kù)的使用詳解

    這篇文章主要為大家介紹了Python jiaba庫(kù)的使用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助,希望能夠給你帶來(lái)幫助
    2021-11-11

最新評(píng)論

财经| 邯郸县| 大足县| 瑞安市| 射阳县| 和静县| 克什克腾旗| 新民市| 桓台县| 揭西县| 清远市| 峨边| 叶城县| 澎湖县| 科尔| 历史| 孟州市| 通州市| 曲沃县| 交口县| 玛多县| 北辰区| 台南市| 金阳县| 鄂尔多斯市| 天长市| 盐池县| 龙里县| 平湖市| 大兴区| 安化县| 巴彦县| 吴川市| 大名县| 浦江县| 罗城| 海阳市| 屏边| 绥棱县| 固镇县| 汶川县|