2010-08-30 54 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"