我刚刚开始学习python(用于webapp),但我对使用它与html文件和动态数据的最佳方式感到困惑。
我知道php有<?php ?>
标签很棒 - python有这样的东西还是等价的,如果不是 我应该怎么做?
答案 0 :(得分:6)
PHP内联标签实际上倾向于鼓励一种不好的做法 - 即将控制逻辑(PHP代码)与模板(html)混合在一起。大多数Python框架倾向于避开这种混合,而是鼓励两者之间的分离 - 通常使用某种templating system。
许多框架都有自己的模板系统(例如,Django templating system非常受欢迎)。其他人不这样做,让你选择一个单独的模板引擎(如Cheetah)。
答案 1 :(得分:4)
有一些php风格的python选项。 Mod_python用于附带一个,而spyce有一个替代实现,但这种模式不受pythonistas的青睐。相反,使用模板语言。 Genshi和jinja2都很受欢迎,但有很多可供选择。
由于您不熟悉使用python进行Web编程,因此最好选择一个完整的框架。 Django,turbogears和cherrypy都是值得一试的。这些框架将包括制作现代网站所需的所有工具,包括模板语言。
答案 2 :(得分:2)
是的,Python确实有一个大致相同的功能:使用mod_python
的Python服务器页面(a.k.a。psp
)。它使您能够执行以下操作:
<html>
<% import time %>
Hello world, the time is: <%=time.strftime("%Y-%m-%d, %H:%M:%S")%>
</html>
然而,一般来说,这种做法不被认为是Pythonic。我会从轻量级Python web framework开始。当你开始时,web2py
是一个很好用的。 bottle
,flask
&amp; cherrypy
非常容易开箱即用。 Django
,TurboGears
&amp;其他更复杂,但提供更多功能。
答案 3 :(得分:0)
正如Tim所说,您可以使用Python Server Pages(psp
)来获取适用于mod_python
的PHP样式内联标记。您必须add psp
handler到Apache配置:
<Directory /var/www/html>
AddHandler mod_python .psp
PythonHandler mod_python.psp
PythonDebug On
</Directory>
然后将其保存为test.psp
并享受。 : - )
<html>
<% import time %>
Hello world, the time is: <%=time.strftime("%Y-%m-%d, %H:%M:%S")%>
</html>
但遗憾的是,mod_python
为retired,您必须使用mod_wsgi
,不幸的是"there is no port of mod_python PSP for mod_wsgi"。