11

我想用 Python 中的数据填充 HTML 模板。虽然我不知道任何 HTML,但我的一位同事会在我提供数据时准备 HTML 模板。然而,他对 Python 知之甚少。

您能否建议一个非常基本的模板框架,它可以很好地处理 HTML 和 Python 的这种分离(即 HTML 中没有太多特殊的语法;在 Python 数据代码中我知道的 HTML 也不多)?理想情况下,HTML 模板应该非常接近纯 HTML。

我还将表格作为数据,所以如果我不必准备 HTML 表格代码会很好,但他可以用一些最小的标记逻辑来完成。理想情况下,即使我的同事应用了 CSS 等更高级的概念,系统也应该可以正常工作。

我找到了广泛的列表,但是由于我不了解技术语言,因此很难判断哪个系统最接近我的要求。

编辑:关键是我们是新手,我们只需要一个基本的解决方案:) - 但理想情况下对我来说没有 HTML,对他来说除了纯 HTML 也没有太多。

4

3 回答 3

17

好吧, django有非常好的强大的模板引擎,其目的是将 HTML 与 python 逻辑分开(但这需要你完全使用 django,所以如果你只是想要模板,这可能是一种矫枉过正)。

如果您的模板真的很简单(没有循环),您可能会使用本机 python string.format函数(我在一个为某些 Fortran 代码生成配置文件的辅助项目中使用它,而且还不错)。

其他选择可能是jinja2,它非常接近 django 模板,但独立且更强大。

于 2012-07-25T09:49:54.627 回答
6

我可以建议看看 web2py 吗?在最基本的层面上,您可以简单地让您的同事创建 html 文件,然后在需要数据的地方将其替换为 {{=var}} var 可以由用 python 函数编写的 web2py 控制器检索。从该函数中,您可以将数据放在一起并使用“return dict(var=var)”返回 html 视图。

如果您的视图如下所示:

<html>
    <head>
        <title>some title</title>
    </head>
    <body>
        <h1>{{=message}}</h1>
    </body>
</html>

控制器可能如下所示:

def index():
    message = "Hello World"
    return dict(message=message)

正如其他人所提到的,您也可以使用 django,但请查看一些web2py 文档的链接

于 2012-07-25T10:37:44.403 回答
1

python中的简单模板是:https ://docs.python.org/3.6/library/string.html#template-strings

它带有语言,不需要外部库。

以下是如何使用模板的示例:

>>> from string import Template
>>> s = Template('$who likes $what')
>>> s.substitute(who='tim', what='kung pao')
'tim likes kung pao'
>>> d = dict(who='tim')
>>> Template('Give $who $100').substitute(d)
Traceback (most recent call last):
...
ValueError: Invalid placeholder in string: line 1, col 11
>>> Template('$who likes $what').substitute(d)
Traceback (most recent call last):
...
KeyError: 'what'
>>> Template('$who likes $what').safe_substitute(d)
'tim likes $what'
于 2020-11-07T19:08:39.533 回答