Tornado與flask的特點和區別有哪些?
01-29
打算用python框架做一個網站,但是對這些框架都不熟悉。需求很簡單,就是伺服器接受請求然後把處理結果(聲音)返回客戶端,並發的要求也很低(基本沒有)。在知乎上查了一下以前的提問,發現Tornado和flask都是比較簡單的框架(比Django),所以在這兒問一下二者的特點和區別。謝謝。
其實這種問題去官網上一般就能找到想要的答案。框架簡單意味著學習框架的時間短但可能要自己去學習和解決一些其他問題。
框架複雜意味著學習框架的時間長但很多常見問題框架已經幫你解決掉了。
小項目,選自己熟悉的。都不熟悉,建議選簡單的。做博客,我倒是支持用django,因為博客只要寫好一個model之後,剩下的就是html這些前段模板的工作了。flask是沒有原生的數據層面的東西,很多人都是將它配合SQLAlchemy來使用,django自帶orm。
不過這個問題是針對題主你個人情況啦,如果你對SQL很熟悉,或者已經掌握了一些如SQLAlchemy之類的orm框架,flask用起來也不難。
flask框架是建立於你已經對python各種web框架,以及Python這一門語言已經有較深理解情況下使用的。你以為flask真的就只是flask一個部分嗎?jinja2你要不要學?Werkzeug要不要學?這些都是flask的依賴庫啊。反正flask跟django都有一個建立網路博客的教程,你倒可以學習學習,然後再看適合用哪個。至於Tornado不是用來搞什麼TCP server的嗎,只是寫個博客而已,用這些非同步框架不太合適吧。我覺得你用flask就可以,因為這3個框架里,falsk無疑是最簡單的。Django過於複雜和封閉,他的orm我估計你也用不上。
tornado的並發處理比flask強,但是你對並發沒要求。
就簡單靈活易用來說,用flask是比較合適的。另外一點flask的文檔和擴展都比tornado要好。先插一句:推薦Django或者flask。下面在回答一下題主的問題:tornado是一個伺服器程序,flask是一個網站框架,可能類似於tomcat和jsp的關係吧,當然也不完全一致。
首先tornado是一個伺服器程序,如何理解,我覺得比如tornado提供了控制webserver的方式,控制層面包括了各種webserver的細節。當然tornado中是可以定義對於web請求的返回值的。
而Django和Flask是網站框架,如果想要運行基於這兩者構建的網站,可能還需要另外使用其他的伺服器軟體。根據題主的需求,只是對特定的請求進行處理並返回數據的話,使用更簡單的Django或者Flask都很合適,兩者對基於URL的請求處理都很簡單直接,上手很快。而如果需要資料庫相關的操作,推薦使用Django,其中集成了ORM框架,比較方便。如果是想更深入的學習框架,可以使用Flask。flask是傳統的多線程web框架,
可以參考我在另一個問題的回答:毛77:Tornado與flask的特點和區別有哪些?
另:我目前用的個人blog就是用tornado寫的,也是我自己寫的,放在GitHub上,可以給大家參考,也可以給我多提提意見。
blog:https://blog.52xtg.com/
GitHub:https://github.com/xtg20121013/blog_xtg
怒答一記:tornado沒有session,flask有。答得水,不好意思不匿名
如果需要websock就用tornado,其他時候還是用flask吧
推薦閱讀:
※Python利用嵌套函數二分搜索列表中大於等於m,小於等於n的數字
※Python GUI教程(九):從UI文件中解耦Python代碼
※黃哥教Python初學者如何調試錯誤。