-1

在 PHP 中,PHP 可以是模板语言。它似乎可以很好地工作,不需要模板系统/语言。

但是,我找不到任何与 Python 类似的语言。你如何做这样的事情:

我从另一个不相关的 SO 问题中得到了这个:

<?php foreach( $dates as $year => $year_content  ): ?>
<h2><?php echo $year ?></h2>

<?php foreach( $year_content['months'] as $months ): ?>
<h3><?php echo $months->month ?> - <?php echo $months->sales ?></h3>
<?php endforeach; ?>

<?php endforeach; ?>

如果没有某人的框架,我只是无法在 web 视图中为“本机”Python 找到类似的东西。谢谢。

编辑:没有冒犯。不想要模板语言。

编辑:尽管投了反对票,但 Python 3 就是一个很好的例子。 虽然 2.x 用户需要 5 年才能使用 3.x,但并非所有模板语言都支持 3.x。例如,Jinja 具有“实验性”3.x 支持。我为什么要用那个?我不会。这让我依赖于他们,我希望能够使用本地的东西,但唉,看来我不能。

4

3 回答 3

1

在 Python 世界中没有适当的解决方案来解决这个问题,因为混合业务逻辑和表示绝对不是 Python 的方式。有一个名为PSP的旧项目可用于mod_python模块,但由于我所描述的原因,它现在肯定已经死了。

因此,框架或裸WSGI应用程序是使用 Python 进行 Web 开发的两种方式。Internet上有很多模板库可用:

  • 神社2
  • 真子
  • 变色龙
  • ...

您可以选择更适合您需求的一种。

于 2012-08-30T14:39:26.257 回答
1

Python 没有PHP 所具有的原生模板。可以将 Python 用作 ISAPI 扩展,它会为您提供类似<% print "foo" %>. 或者,您可以在纯 CGI 中编写 python 脚本。这些道路可能相当痛苦,使用框架会更好地为您服务——框架为您提供了其他开发人员经验的优势,并消除了直接处理 CGI 和 HTTP 的粗糙边缘。

请参阅我对之前提出的类似问题的回答

于 2012-08-30T14:39:53.597 回答
0

查看 Jinja2 http://jinja.pocoo.org/docs/

它是一种相当简单的模板语言,允许您创建可以在有限版本的 Python 中内部编程的文本文件模板。

您发布的示例在 Jinja2 中可能如下所示:

{% for date in dates: %}
    <h2>{{ date.year }}</h2>

    {% for month in date.year_content['months'] %}
        <h3>{{ month.month }} - {{ month.sales }}</h3>
    {% endfor %}
{% endfor %}
于 2012-08-30T14:36:45.897 回答