从命令行渲染 Django 模板,无需设置
Render Django template from command line, without settings
有没有办法在不调用任何设置的情况下从命令行呈现 Django 模板?我想在任何 Django 应用程序或项目之外执行此操作,以便能够将其用作命令行工具来呈现带有一些变量的模板。有没有工具可以做到这一点? Jinja2 也可以。
如果您没有要配置的自定义设置,您可以使用 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+
有没有办法在不调用任何设置的情况下从命令行呈现 Django 模板?我想在任何 Django 应用程序或项目之外执行此操作,以便能够将其用作命令行工具来呈现带有一些变量的模板。有没有工具可以做到这一点? Jinja2 也可以。
如果您没有要配置的自定义设置,您可以使用 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+