如何将Django模板转换为html模板

时间:2018-10-09 02:30:55

标签: html django django-templates converters

我想知道是否有任何库/模块可以将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>

有没有简单的工具可以做到这一点?

2 个答案:

答案 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中。