2010-08-30 55 views
3

我刚刚开始学习python(对于web应用程序的使用),但我很困惑与使用html文件和动态数据的最佳方式。 我知道PHP有<?php ?>标签这是伟大的 - 是否有这样的Python或类似的东西,如果不是如何应该我在做呢?Python的PHP样式内联标签?

回答

6

PHP内联标签实际上倾向于鼓励一种不好的做法 - 即将您的控制逻辑(PHP代码)与您的模板(html)混合。大多数Python框架倾向于摆脱这种混合,而是鼓励两者分离 - 通常使用某种templating system

许多框架都有自己的模板系统(例如,Django templating system相当流行)。其他人不会让你选择一个单独的模板引擎(如Cheetah)。

+1

如果我能够引用python框架倾向于明确地对混合的HTML和控件标记作出反应这一事实,我会+2。另外,Django确实允许备用模板系统(在版本1.2中比以往更加轻松http://docs.djangoproject.com/en/1.2/ref/templates/api/#using-an-alternative-template-language )。 – 2010-08-30 00:57:02

+0

如果我可以给+2以外的“时尚”,因为“Pythonistas”不喜欢PHP风格模板,我也可以给出+2。 – Omnifarious 2010-08-30 02:24:32

4

这里有几个php风格的python选项。 Mod_python用于装载一个,而spyce有一个替代实现,但是pythonistas不支持这种模式。相反,使用模板语言。 Genshi和jinja2都很受欢迎,但有很多可供选择。

由于您是使用python进行网络编程的新手,您可能最好选择整个框架入门。 Django,turbogears和cherrypy是少数可以检查出来的。这些框架将包含您制作现代网站所需的所有工具,包括模板语言。

2

是的,Python的确具有大致相同的功能:使用mod_python的Python服务器页面(又名psp)。它可以让你做这样的事情:

<html> 
<% import time %> 
Hello world, the time is: <%=time.strftime("%Y-%m-%d, %H:%M:%S")%> 
</html> 

但是,一般来说这种做法不被视为Pythonic。我会从轻量级Python web framework开始。当你开始时,web2py是一个不错的选择。 bottleflask & cherrypy非常容易使用开箱即用。 Django,TurboGears &其他更复杂,但提供更多的功能。

0

正如Tim所说,您可以使用Python Server Pagespsp)来获取适用于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_pythonretired,你必须使用mod_wsgi不幸的是,"there is no port of mod_python PSP for mod_wsgi"