有没有办法从命令行渲染Django模板而不调用任何设置?我想在任何Django应用程序或项目之外执行此操作,以便能够将其用作命令行工具来呈现带有一些变量的模板。有没有这样做的工具? Jinja2也没关系。
答案 0 :(得分:7)
如果您没有要配置的自定义设置,则可以使用settings.configure()
。
from django.conf import settings
settings.configure()
from django.template import Template, Context
Template('Hello, {{ name }}!').render(Context({'name': 'world'}))
要从磁盘加载模板,您需要做更多的工作。
import django
from django.conf import settings
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': ['/path/to/template'],
}
]
settings.configure(TEMPLATES=TEMPLATES)
django.setup()
from django.template.loader import get_template
from django.template import Context
template = get_template('my_template.html')
template.render(Context({'name': 'world'})
请注意,这个答案适用于Django 1.8 +