我想知道是否有任何库/模块可以将django模板转换为常规的html文件。
假设我有这个django模板:
index.html
{% extends "base.html" %}
<p> My name is {{ name }}. Welcome to my site </p>
我想将其转换为如下形式:
index.html
< the content of base.html here >
<p> My name is John Doe. Welcome to my site </p>
有没有简单的工具可以做到这一点?
答案 0 :(得分:1)
让我们说您想保留您的 index.html 模板文件,并根据 {'name':'John Doe'} < / em> 放入名为 index2.html 的文件中。您可以通过首先从具有给定上下文的index.html渲染中获取文本输出,然后将其写入另一个html文件中来实现。
我假设您的django项目中的“模板”中有index.html文件,并且您已将 BASE_DIR 设置保留为默认值。
import os
from django.template import engines
from django.conf import settings
# Get rendered result as string by passing {'name' : 'John Doe'} to index.html
with open(os.path.join(settings.BASE_DIR, 'templates'), 'r') as f:
template = engines['django'].from_string(f.read())
text = template.render({'name':'John Doe'})
# Write the rendered string into a file called 'index2.html'
with open(os.path.join(settings.BASE_DIR, 'templates','index2.html'), 'w+') as f:
f.write(text)
答案 1 :(得分:0)
您可能已经使用yyyy-MM-dd
来在视图中呈现模板,例如:
render
类似地,您可以执行以下操作:
return render(request, 'folder/some.html')
获取所需的HTML。
此HTML位于bytes format中。