【问题标题】:How do I create a jinja2 filter and use it within pylons?如何创建 jinja2 过滤器并在 pylons 中使用它?
【发布时间】:2010-07-30 03:50:17
【问题描述】:

我正在四处寻找一种方法来实现一个简单的过滤器。

我想创建一些 Smarty“标签”的等价物,以使移植更容易,特别是 {mail_to} http://www.smarty.net/manual/en/language.function.mailto.php

我似乎在 jinga2 文档之间兜圈子 http://jinja.pocoo.org/2/documentation/extensions#module-jinja2.ext

和网络助手 http://pylonshq.com/docs/en/0.9.7/modules/templating/

我期望写的是类似的东西

{% mail_to user=c.user.email encode='hex' %}

无法弄清楚如何将它们拼凑在一起,即 lib 的位置以及如何加载以供使用。

tia

【问题讨论】:

    标签: pylons jinja2


    【解决方案1】:

    编写你的扩展并将其放入 lib/extensions.py

    要将扩展加载到环境中,请在 config/environment.py 中执行:

    from MYAPP.lib import extensions
    
    config['pylons.app_globals'].jinja2_env = Environment(loader=ChoiceLoader(
                [FileSystemLoader(path) for path in paths['templates']]),
                 extensions=[extensions.YOU_EXTENSION_MAIL_TO_CLASS]))
    
    # If you extension use some options, you can init it 
    config['pylons.app_globals'].jinja2_env.mail_to_smtp_host = 'some_host'
    

    在你的模板中调用 {% mail_to arg1, arg2 %}

    【讨论】:

      猜你喜欢
      • 2012-02-03
      • 1970-01-01
      • 2012-09-18
      • 1970-01-01
      • 1970-01-01
      • 2020-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多