问题 Python中的简单HTML模板


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

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

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

我找到了 广泛的清单但是我很难判断哪个系统最接近我的要求,因为我不懂技术语言。

编辑:重点是我们是新手,我们只需要一个基本的解决方案:) - 但理想情况下我没有HTML,也没有超出纯HTML的范围。


8151
2017-07-25 09:42


起源

变色龙和Zope页面模板(都实现相同的属性语言)提供了这个;清除分离和模板仍然可以在浏览器中工作。不幸的是,这类问题不符合本网站的格式,请参阅 常问问题。像这样的问题往往导致模糊的答案,这些答案也很快就过时了。如果我们可以帮助您解决特定问题,请随时发布另一个问题! - Martijn Pieters♦
感谢您的解释。对于完整的新手应该容易设置的具体要求应该限制可能的答案......只要每个人都阅读所有问题。我不知道如何重新制定它:( - Gerenuk
你也可以看看“Mako”和“Jinja2”。如果您需要的不仅仅是HTML渲染器,请查看Flask(它非常小,并为Jinja和Mako提供了很好的集成)。 - javex


答案:


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

如果您的模板是  容易(没有循环)你可能使用本机python 的String.Format function(我在一个生成配置文件到一些Fortran代码的副项目中使用它,并没有那么糟糕)。

其他选择可能是 Jinja2的 这是非常接近django模板,但独立和更强大。


12
2017-07-25 09:49



谢谢。 string.format解决了所需的简单性,但它可能过于简单,因为我仍然需要在Python端生成HTML表标记。这是我没有采用最简单的解决方案的唯一原因。 - Gerenuk
然后去找jinja2吧。 - jb.


我可以建议看看web2py吗?在最基本的层面上,您可以简单地让您的同事创建html文件,然后您需要将数据替换为{{= var}},可以通过用python函数编写的web2py控制器检索var。从函数中,您可以将数据放在一起,并使用“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文档


3
2017-07-25 10:37



如果OP也在寻找控制器(不仅是模板引擎),我强烈建议使用django。 - jb.