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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM