在Django中编写模版节点及注册标签的方法

 更新时间:2015年07月20日 16:22:57   投稿:goldensun  
这篇文章主要介绍了在Django中编写模版节点及注册标签的方法,Django是Python各式各样的高人气框架中最为著名的一个,需要的朋友可以参考下

编写模板节点

编写自定义标签的第二步就是定义一个拥有 render() 方法的 Node 子类。 继续前面的例子,我们需要定义 CurrentTimeNode :

import datetime

class CurrentTimeNode(template.Node):
 def __init__(self, format_string):
  self.format_string = str(format_string)

 def render(self, context):
  now = datetime.datetime.now()
  return now.strftime(self.format_string)

这两个函数( __init__() 和 render() )与模板处理中的两步(编译与渲染)直接对应。 这样,初始化函数仅仅需要存储后面要用到的格式字符串,而 render() 函数才做真正的工作。

与模板过滤器一样,这些渲染函数应该静静地捕获错误,而不是抛出错误。 模板标签只允许在编译的时候抛出错误。
注册标签

最后,你需要用你模块的Library 实例注册这个标签。 注册自定义标签与注册自定义过滤器非常类似(如前文所述)。 只需实例化一个 template.Library 实例然后调用它的 tag() 方法。 例如:

register.tag('current_time', do_current_time)

tag() 方法需要两个参数:

  1.     模板标签的名字(字符串)。
  2.     编译函数。

和注册过滤器类似,也可以在Python2.4及其以上版本中使用 register.tag装饰器:

@register.tag(name="current_time")
def do_current_time(parser, token):
 # ...

@register.tag
def shout(parser, token):
 # ...

如果你像在第二个例子中那样忽略 name 参数的话,Django会使用函数名称作为标签名称。

相关文章

  • python中flatten()参数示例详解

    python中flatten()参数示例详解

    flatten是numpy.ndarray.flatten的一个函数,即返回一个一维数组,这篇文章主要给大家介绍了关于python中flatten()参数的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-03-03
  • python计算导数并绘图的实例

    python计算导数并绘图的实例

    今天小编就为大家分享一篇python计算导数并绘图的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • Python 如何限制输出日志的大小

    Python 如何限制输出日志的大小

    这篇文章主要介绍了Python 限制输出日志的大小方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • IPython 8.0 Python 命令行交互工具

    IPython 8.0 Python 命令行交互工具

    这篇文章主要介绍了IPython 8.0 Python 命令行交互工具,IPython 是 Python 的原生交互式 shell 的增强版,可以完成许多不同寻常的任务,下面我们就拉看看文章具体的介绍内容吧
    2022-01-01
  • Python利用docx模块实现快速操作word文件

    Python利用docx模块实现快速操作word文件

    这篇文章主要为大家详细介绍了Python如何利用docx模块实现快速操作word文件,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2022-09-09
  • python Django 反向访问器的外键冲突解决

    python Django 反向访问器的外键冲突解决

    这篇文章主要介绍了python Django 反向访问器的外键冲突解决,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • Python机器学习NLP自然语言处理基本操作词向量模型

    Python机器学习NLP自然语言处理基本操作词向量模型

    本文是Python机器学习NLP自然语言处理系列文章,带大家开启一段学习自然语言处理 (NLP) 的旅程。本篇文章主要学习NLP自然语言处理基本操作词向量模型
    2021-09-09
  • Python中pyCirclize包的使用教程详解

    Python中pyCirclize包的使用教程详解

    pyCirclize 是一个 Python 包,用于绘制环形图,这篇文章将将提供更丰富的示例代码,以更全面地展示 pyCirclize 包的功能和用法,感兴趣的小伙伴可以了解一下
    2023-11-11
  • 解决Python二维数组赋值问题

    解决Python二维数组赋值问题

    今天小编就为大家分享一篇解决Python二维数组赋值问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • Python+OpenCV实现图片及视频中选定区域颜色识别

    Python+OpenCV实现图片及视频中选定区域颜色识别

    这篇文章主要为大家详细介绍了如何利用Python+OpenCV实现图片及视频中选定区域颜色识别功能,文中的示例代码讲解详细,感兴趣的可以了解一下
    2022-07-07

最新评论