html - 如何将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>
是否有任何简单的实用程序可以做到这一点?
解决方案
假设你想保留你的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)
推荐阅读
- python - 如何将文本文件转换为要在 Python 中使用的字典?
- spring - 在 @PreAuthorize 中使用请求标头值
- architecture - 如何找出地址总线宽度有多宽?
- javascript - 如果单击提交按钮时字段未填写信息,则前端输入字段警告消息
- php - 管理面板页面阻止
- html - 为什么我的引导卡长度不一致?
- keras - InvalidArgumentError: indices[13,9] = 197491 不在 [0, 189722) [[nodesequential_7
- mysql - MariaDB 按位与十六进制字符串文字
- python - TypeError:product() 得到了一个意外的关键字参数“product_id”
- nginx - kubernetes 入口服务器别名仅适用于一个入口主机