Python作为HTML内部PHP的替代品

时间:2017-01-07 09:31:22

标签: python templates web

是否可以像使用PHP一样使用Python进行Web开发?

换句话说,我可以在我的HTML中添加一些python代码,这些代码可以在服务器上运行并可能添加到HTML中吗?

例如,一些PHP代码:

<p>Cheese:</p> 
<ul>
<?php
    $cheeses = ['brie', 'cheddar', 'death star'];
    foreach ($cheeses as $c){
        echo "<li>".$c."</li>";
    }
?>
</ul>
<p>No more cheese :(</p>

使用python可能是:

<p>Cheese:</p> 
<ul>
<?py
    cheeses = ['brie', 'cheddar', 'death star']
    for c in cheeses:
        print ("<li>" + c + "</li>")
?>
</ul>
<p>No more cheese :(</p>

3 个答案:

答案 0 :(得分:3)

由于大多数HTTP服务器都是用C / C ++编写的,因此它们不直接支持python,ruby或php。这种特定语言有特殊的实现。因此,除非也实现了python脚本,否则您的PHP Web服务器将不支持python。但是,您可以使用CGI(仍然支持)来实现您的python脚本。但不建议这样做。相反,你应该使用现有的python web farmeworks,如Django,TurboGears,Zope,Bottle或Flasks

答案 1 :(得分:2)

仅Python不是Web开发语言。但是,您可以将它与某些Web框架(如Django,Flask等)一起使用,以便使用模板标记过滤器在模板中执行操作。对于Django,请参阅Django's built-in tags文档以获取可用操作的完整列表。

因此,您在Django模板中的等效for循环将如下:

{% for c in cheeses %}
    <li> {{ c }} </li>
{% endfor %}

您必须在呈现模板时将cheeses列表与上下文对象一起传递。

答案 2 :(得分:1)

Python Web Framework与PHP完全不同。

有一些模板语言,如Django的模板语言,Jinja2模板引擎。您在HTML模板中使用标签,甚至可以使用django&#34;&#34; widthratio&#34;标签。但实际上并不建议这样做,因为模板基本上是字符串,python使用模板和一些变量来渲染最终的HTML以响应浏览器。

因此在python web框架中,模板仅用于管理视图显示,您应该将逻辑代码与模板分开。

如果你想在web开发中使用python,你最好用python的方式思考,python中有很多MVC框架,最好的做法是在控制器中编写你的python代码,将视图渲染留给模板。