F13

RSS

文字列からjinja2を使う

jinja2を文字列に対して適用したいことがあったので。

Kayで定義しているCustom Filterも読み込むようにしてある。

# -*- coding: utf-8 -*-
import logging
from jinja2 import Environment
from jinja2.utils import import_string

from kay.conf import settings

def render(string, **kwargs):
    enviroment = Environment()
    for key, value in settings.JINJA2_FILTERS.iteritems():
        try:
            enviroment.filters[key] = import_string(value)
        except:
            logging.error('fail to load filter:(%s:%s)' % (key, value,))

    html = enviroment.from_string(string).render(kwargs)
    return html