我们可以在php中生成python网页吗​​?

时间:2013-02-05 14:05:00

标签: python web

我们可以用python语言编写(或者可能存在这样的Web框架),我们可以用PHP语言编写Python和html标签。

我们可以有这样的python文件结构:

some_python_file.py:

<html>
<head>
     <title>Lol</title>
<head>
<body>
    My PyWeb Slang
</body>
</html>

<!-- this part should be python -->
<?py
    from Eternity import Kiss

    love = Kiss.Forever()
    print "%s" % love
?>

抱歉,我正在写上限: DISAMBIGUATION:

您可以看到,每个行使用该模板{%goodies%}或&lt;%= goodies%&gt;

{% extends "layout.html" %}
{% block body %}
  <ul>
  {% for user in users %}
    <li><a href="{{ user.url }}">{{ user.username }}</a></li>
  {% endfor %}
  </ul>
{% endblock %}

但在PHP中:

<div>Good Morning, Sun!</div>
<?php

     echo "Happy!";
     echo "Hi, WaterLand!";

?>

如果Python可以这样做,那应该是:

<div>Good Morning, Sun!</div>

<?py

     print "%s" % "Happy!"
     print "%s" % "Hi, WaterLand!";

?>

有了意识形态,还是我需要更明确?

谢谢。 :)

嗯,如果是这样的话:

我们可以使用mod_python编写(从下面扩展 [morphyn] 示例):

<html>
<%
    greet = 'Hello Wee!'
    answer = 'Hello Bee!'
%>
<h1><%= greet %></h1>
<h2><%= answer %></h2>
</html>

在那里你可以看到超过2'u的行&lt;%...%&gt; 我们可以吗?

3 个答案:

答案 0 :(得分:5)

这不是您要求的,但正确的方法是使用模板引擎。看看Jinja2Django还提供了自己的模板引擎。

<强>更新

默认情况下,Python无法嵌入HTML页面。然而,至少有一种方法可以做到这一点。 mod_python是Apache2的一个模块,它提供了PSP(Python服务器页面)所需的功能。

<html>
<%
    greet = 'Hello'
%>
<h1><%= greet %></h1>
</html>

请记住,混合逻辑和演示通常不是一个好主意。正如我原来的答案所述,正确的方法仍然是使用模板引擎。你可能有很好的理由做你想做的事,但可能没有。

答案 1 :(得分:1)

web.py的工作方式类似于您想要的方式,但有点倒退。您可以使用URL来调用类,并且类可以呈现可以传递参数的模板,以便在将模板呈现到html页面时填充内容。我认为使用它比Django更简单,但是如果你有很多内容一直在变化,那么可能就是这样。以下是来自web.py网站的代码示例,其中显示了它的简单性。

import web

urls = (
    '/(.*)', 'hello'
)
app = web.application(urls, globals())

class hello:        
    def GET(self, name):
        if not name: 
            name = 'World'
        return 'Hello, ' + name + '!'

if __name__ == "__main__":
    app.run()

答案 2 :(得分:0)

是的:我们可以使用 PSP (Python服务器页面) [用户:morphyn答案]

Paul Osman : Introduction to mod_python

文章示例:

<%
    a = [1,2,3,4,5,6]
    for number in a:
%>
This is a number: <%=number %> <br />
<%
    # this terminates the iteration
%>
<h1>Hello</h1>