bottle flask 框架對比

Flask:Flask是一個輕量級的Web應用框架, 使用Python編寫。基於 WerkzeugWSGI工具箱和 Jinja2模板引擎。使用 BSD 授權。Flask也被稱爲 “microframework” ,因爲它使用簡單的核心,用 extension 增加其他功能。Flask沒有默認使用的數據庫、窗體驗證工具。然而,Flask保留了擴增的彈性,可以用Flask-extension加入這些功 能:ORM、窗體驗證工具、文件上傳、各種開放式身份驗證技術。
bottle:是Python的一個簡單、快速和輕量級的WSGI微型Web框架,整個框架只有一個文件模塊,除了Python 標準庫之外,沒有其他依賴項。

對比幾點:

  1. 如果只看 hello world 的 demo,這兩個應該沒啥區別。 不過如果你願意,flask 是可以和 django 同規模的框架,不同之處在於 django 是組裝好的傢俱,flask 要你自己擰螺絲。
  2. 說實話,雖然看起來bottle設計的更簡潔,但是實際開發的時候,就會覺得flask設計的更貼心,比如url_for,模板裏面用config,等等
  3. Bottle作爲一個微框架,本身確實有些小型項目的缺點,嘗試列舉如下:
    • 沒有原生支持unicode

例如route('/

')獲取的name並不是unicode類型,get和post的參數也默認並非unicode類型,雖然作者後來在0.10版本中給query和forms加入attr方式來解決這個問題,但是還是有所限制

而flask則是 unicode based,對unicode支持的非常好

    • 影響力小,與其他組件的結合比較差

一個典型的例子就是wtforms不支持bottle的files字段,而flask雖然也不支持,但是flask的插件flask-wtforms則完美修正了這個問題

    • 功能太基本

關於這一點,可以說是優點也可以說是缺點。絕對的純粹看起來是件好事,但是真正開發起來又發現完全不是那麼回事,自己要重新開發的輪子實在太多了。比如session的支持

    • bottle由個人開發,有些地方並不那麼專業

  反觀flask,不能說flask的一切都是好的,但是確實在這幾點上要比bottle做的要好一些,而且flask還有一些很實用的功能,比如實時debug,還有一些很實用的函數如url_for,而且flask與django確實有很大的相似性,這對flask本身的成熟度有很大的提高。

4.當然,實事求是,flask確實在設計上要比bottle複雜了很多,而且依賴了werkzeug,Bottle 自身並沒有提供Session的支持,,可以使用beaker中間件或自己實現。

 

對比文章 :

https://codeahoy.com/compare/flask-vs-bottle

https://www.9spl.com/blog/what-is-unique-flask-compare-microservices-based-frameworks/

 

 

對比django flask 文章:

https://www.monocubed.com/flask-vs-django/

https://www.sankalpjonna.com/learn-django/flask-vs-django-in-2021

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章