Jinja2模板渲染器用于Django
项目描述
Cofingo是Coffin (http://github.com/coffin/coffin) 和 Jingo (http://github.com/jbalogh/jingo) 的结合。它允许在保持Django的标签和过滤器(例如URL标签)的同时使用Jinja2模板。
像Jingo一样,添加自定义过滤器、标签(扩展)和测试的方法是在您的应用中创建一个helpers.py文件。
入门指南
安装Cofingo最简单的方法是使用 pip
pip install django-cofingo
开发版本可在以下位置找到
http://github.com/mvantellingen/django-cofingo
配置
将 django_cofingo.Loader 添加到您的设置中
TEMPLATE_LOADERS = ( 'django_cofingo.Loader', 'django.template.loaders.filesystem.Loader', 'django.template.loaders.app_directories.Loader', )
然后模板将由Jinja2渲染,无论使用哪种方法(适用于基于类的视图、TemplateResponse等)。
如果您想防止特定应用的模板使用Jinja2进行渲染,则可以在设置文件中排除它们
COFINGO_EXCLUDED_APPS = ['admin', 'debug_toolbar']
(请注意,这些两个应用默认已添加)
创建自定义过滤器和扩展
在您的Django应用中创建一个helpers模块,并添加以下内容
from django_cofingo.library import Library library = Library()
如果您想添加一个过滤器,请添加以下内容
@library.filter def my_custom_filter(value): return value + '-filtered'
添加扩展可以按以下方式完成
from django_cofingo.library import Library from django_assets.env import get_env from webassets.ext.jinja2 import AssetsExtension library = Library() library.attr('assets_environment', get_env()) library.extension(AssetsExtension)
您还可以通过在settings.py文件中指定它们将其他模块和库添加到Cofingo中
COFINGO_HELPERS = [ 'myproject.helpers' ]