這寫這篇文章的時候,我找了很多python的web FrameWork架構,最後經過考慮,選擇了 Quixote這架構,[]
Quixote的優點:
- 簡單,Quxiote的全部代碼量為7000行左右,而且包含了大量的注釋,如果去掉注釋,則只有大約2500行代碼。這也是我選擇Quixote來學習Python的原因,因為你能容易通過閱讀代碼看到Quxiote做了什麼。
- 高效,這一方面得益於Python語言本身的特點和Quxiote簡單的架構,另一方面得益於用PTL模板。
- 安全,這也得益於Quxiote的簡單,使得我們能很好的控制架構,並且它提供了一些HTML輸出方法,保證了HTML輸出的安全。
- 自由,開源就是好!
- 久經考驗,曆史悠久,在大量的公司專屬應用程式中被證明是一個高效,靈活,穩定的架構,最著名的應用就是豆瓣(http://www.douban.com),我也是從豆瓣的架構中知道了Quxiote。
Quxiote的缺點:
- 沒有內建的資料庫支援和安全驗證機制
- PTL適合程式員,並不適合美工參與前端代碼的編寫和修改
- 內建伺服器不能很好的支援Debug,如果使用simple_server.py來調試雖然可以跟蹤到,但是如果修改代碼必須重啟伺服器,如果使用cgi,雖然修改代碼後不用重啟伺服器,但是無法跟蹤到代碼,並且Quixote提供的Session支援會失效,除非使用Session持久化。
- 沒有內建WSGI的支援,WSGI是Python PEP中提出的規範即(Web Server Gateway Interface)這個規範被廣泛應用,使得Python Web Server 和 Python Web Framework能很好的相容。
總結:
首先,對於想學習Python Web開發的人來說,通過使用Quixote將會帶來很多的好處,Quxiote很接近Python,不會像Django和Pylons雖然提供了很好的開發流程,也能很快的上手,但是很難瞭解到這些架構到低做了什麼,至少對於初學者來說,使用這些架構並不太適合。而Quixote代碼量少,但包括了很多核心功能的實現,如Request,Response,Session,WebServer等。
其次,Quixote的簡單使得Quixote非常靈活,也意味著你需要做更多的二次開發,所以想用Quixote做出好的網站,還需要有一定的Python基礎。如資料庫開發,Python多線程應用等等。
由於Quixote並沒有為我們提供資料庫的支援和安全驗證機制,但是你同樣可以使用一些已有的架構來解決這個問題,如SqlAlchemy。SqlAlchemy可以說是Python的ORM標準,就像Java中的Hibernate一樣,所以是不二的選擇,很多人沒有選擇Django,也是因為Django的ORM解決方案並不能讓人滿意。
另外本人並不使用Quixote的PTL,畢竟時代的發展已經有更好的技術來替代他了,比如Python的模板引擎Mako,豆瓣在新的開發中也部分使用了Mako。
SqlAlchemy和Mako的介紹以及和Quixote整合的文章也會陸續推出。
這裡說下怎麼配置web framework
1. 在電腦環境變數設定Path屬性,添加Python安裝路徑,比如:我本機安裝在
C:\Python26
2.在命令列運行:
python -c "import os, quixote; print os.path.dirname(quixote.__file__)"
接著運行
python setup.py install
在命令列運行
server/simple_server.py
好了,最後,開啟瀏覽器
http://localhost:8080
如果能開啟,就證明你已經安裝成功。