首页 > 解决方案 > 如何将django模板转换为html模板

问题描述

我想知道是否有任何库/模块可以将我的 django 模板转换为常规的 html 文件。

假设我有这个 django 模板:

索引.html

{% extends "base.html" %}
<p> My name is {{ name }}. Welcome to my site </p>

我想把它转换成这样的东西:

索引.html

< the content of base.html here >
<p> My name is John Doe. Welcome to my site </p>

是否有任何简单的实用程序可以做到这一点?

标签: htmldjangodjango-templatesconverters

解决方案


假设你想保留你的index.html模板文件,并从{'name' : 'John Doe'}这样的上下文生成它的渲染版本到一个名为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)

推荐阅读