用于大型HTML/XML的Python模板

4 投票
5 回答
1105 浏览
提问于 2025-04-15 22:41

最近我需要生成一个很大的HTML页面,这个页面里有一个包含几千行的表格。显然,我不想把整个HTML(或者说它的结构)都放在内存里。因此,我用老办法通过字符串拼接来构建这个页面,但我对这个方法不太满意。

所以,我在想有没有Python的模板引擎,可以分部分生成最终的页面内容。

更新 1: 我并不想列出所有可用的框架和模板引擎。我想要的是可以独立于任何框架使用的模板解决方案,并且能够分段生成内容,而不是把整个结果都放在内存里。

我明白通过客户端脚本进行部分内容加载的好处,但这不在我当前问题的范围内。比如,我想生成一个很大的HTML/XML文件,并把它流式写入本地文件。

5 个回答

2

在内存中构建这样的东西没有问题。几千行数据根本不算多。

对于你的模板需求,你可以使用以下任何一种:

有一些工具可以让你从这些标记语言生成HTML。

2

如果用户的浏览器支持JavaScript,使用JavaScript来构建表格会更友好。比如可以用一个jQuery插件,这样用户在向下滚动页面时,内容会自动加载。这样一开始只加载少量的行,当用户继续向下滚动时,才会按需加载更多的行。

如果这个方法不行,你可以使用三个模板:一个是表格行之前的内容,一个是表格行之后的内容,还有一个是表格行本身。首先发送表格行之前的模板,然后生成表格行并立即发送,最后再发送表格行之后的模板。这样你在内存中只会有一小部分内容,而不是整个表格。

5

大多数流行的模板引擎都有一种方法,可以将生成的结果分块写入文件对象。举个例子:

撰写回答