Flask框架怎麼樣,比起Web.py有哪些不同?


Flask這個團隊做了很多內置的有趣的框架,比如Jinja2,還有werkzeug,而Flask基於這個的的更高級框架,所以一脈相承,文檔內容都要好多了,至於webpy這個好東西,最大的問題是,作者自殺了作者自殺了作者自殺了.......

匿了


  1. Flask伸縮性好,可以做微框架,也可以做到django級別的應用。
  2. 有許多活躍的extensions。flask-login, flask-migrate 等等。
  3. 入門簡單,有活躍的中文文檔。


名義上有更新,也有人在維護,但是跟之前相比,天壤之別,版本貌似也停留在0.37了,如果作者沒狗帶維護到今天的話,難以想像,就這個0.37的版本,已經麻雀雖小五臟俱全了,官方的入門教程非常簡單好上手,對中小項目來說還是很夠用的。

感覺不太方便的地方是:

1.ORM支持的不大好,自身沒有ORM,對接外部ORM框架沒有flask之類的好,不過由於之前java都用ibatis這類半自動化的ORM,所以這個倒不是大問題,自己手寫一個db-object的映射封裝就好,只不過層次分的不好的話,容易把object寫的比較亂,典型的就是加入了很多業務邏輯,而不是一個純粹的映射封裝,還是很懷念的ibatis的,這種半自動化的ORM好處就是sql自己寫框架只負責ORM,這樣對sql調優比較方便,而flask由於它的良好擴展性對外部ORM框架支持的就很天然,ps,半自動化框架有誰推薦一個么?

2.url映射切分比較麻煩,url映射就是把url映射到不同的處理類上,我感覺不好使的地方一個是只能映射到類層級,其實類似structs映射到類的方法層級會更方便的,這個沒想到什麼解決辦法,基本就是一個映射對應了一個處理類,不過python的類比較輕量級也蠻方便,寫一個文件就好了,另一個就是url映射集中在一個地方,不過這個有辦法,至少可以把處理類映射到不同文件中,否則一個文件太多類也麻煩。而flask的blueprint貌似就比較好一點,也比較適合多人協作開發

3.mvc需要自己抽好,這個不能算缺點,畢竟這就是靈巧的代價,沒有嚴格給你劃分好mvc,如何處理完全看你自己,你可以把mvc直接搞成mv,也可以寫成比較嚴謹的mvc,我一開始代碼少就是mc,後來代碼量上來了,慢慢抽出c來,否則代碼量多了比較災難。

主要拿來做rest api service的框架,所以對頁面模板和session這塊用的很少,不做評論。

最最重要的是,flask團隊還活著!而web.py的作者仙逝了。。。

而且有一個oreilly出的書專門寫flask的,叫做《Flask web開發》,作者把flask作為web開發框架的主要方面都做了詳細講述,給了很多flask好的實踐,甚至包括包目錄如何劃分,可以避免踩很多坑,而web.py只有N年不變的官方文檔,還是很入門級的,其他的都靠自己摸索了...

然而,個人而言,我還是比較喜歡web.py.....


兩者都崇尚簡單.源碼也短小精悍,想要學好python,學習 flask可以了解python的本質. web.py 的作者自殺了.項目就沒有更新.flask 有一個靠譜的團隊維護,並且社區也活躍.第三方的中間價也很多.python的web框架差別主要還是設計理念,不同的框架設計理念差很大.


flask框架文檔挺詳細,實例也挺全,但是代碼一多就分不清MVT了


我一直很喜歡web.py,但是做項目的時候又不敢大規模用web.py。用flask的話,還需要依賴其他的庫,不太喜歡這種架構。

糾結啊。


推薦閱讀:

Tornado 非同步讀寫文件的方法?
學完python之後去看《flask web開發-基於python的web應用開發實戰》為什麼看不懂?
用Python寫爬蟲,用什麼方式、框架比較好?
如何理解 CGI, WSGI?
WSGI 為什麼很重要?

TAG:Python | Django框架 | Webpy | Flask | Python框架 |