1. Flask 簡介
Flask 是一個 Python 實現(xiàn)的 Web 開發(fā)微框架。github地址:https://github.com/pallets/flask
“微”(micro) 并不表示你需要把整個 Web 應(yīng)用塞進(jìn)單個 Python 文件(雖然確實可以),也不意味著 Flask 在功能上有所欠缺。微框架中的“微”意味著 Flask 旨在保持核心簡單而易于擴(kuò)展。Flask 不會替你做出太多決策——比如使用何種數(shù)據(jù)庫。而那些
Flask 所選擇的——比如使用何種模板引擎——則很容易替換。除此之外的一切都由可由你掌握。如此,F(xiàn)lask 可以與您珠聯(lián)璧合。默認(rèn)情況下,F(xiàn)lask 不包含數(shù)據(jù)庫抽象層、表單驗證,或是其它任何已有多種庫可以勝任的功能。然而,F(xiàn)lask支持用擴(kuò)展來給應(yīng)用添加這些功能,如同是 Flask本身實現(xiàn)的一樣。眾多的擴(kuò)展提供了數(shù)據(jù)庫集成、表單驗證、上傳處理、各種各樣的開放認(rèn)證技術(shù)等功能。Flask也許是“微小”的,但它已準(zhǔn)備好在需求繁雜的生產(chǎn)環(huán)境中投入使用。
Flask有兩個主要依賴:路由、調(diào)試和Web服務(wù)器網(wǎng)關(guān)接口(Web Server Gateway Interface,WSGI)子系統(tǒng)由Werkzeug(http://werkzeug.pocoo.org/)提供;模板系統(tǒng)由Jinja2(http://jinja.pocoo.org/)提供。Werkzeug和Jinjia2都是由Flask的核心開發(fā)者開發(fā)而成。
Flask并不原生支持?jǐn)?shù)據(jù)庫訪問、Web表單驗證和用戶認(rèn)證等高級功能。這些功能以及其他大多數(shù)Web程序中需要的核心服務(wù)都以擴(kuò)展的形式實現(xiàn), 然后再與核心包集成。開發(fā)者可以任意挑選符合項目需求的擴(kuò)展, 甚至可以自行開發(fā)。
2. Web開發(fā)框架
(一) Django
Django是以快速開發(fā)和結(jié)構(gòu)整潔著稱的高層框架.這個開源免費(fèi)的框架完全由Python編寫并且遵循MVC的模型.它由經(jīng)驗豐富的大牛編寫,幫你解決了Web開發(fā)中大多數(shù)的難點,讓你能夠?qū)W⒂跇I(yè)務(wù)邏輯,而不用重復(fù)造輪子。
(二) Flask
Flask適合開發(fā)輕量級的Web應(yīng)用,新手程序員會發(fā)現(xiàn)它缺乏一些必要的功能,如表單驗證和數(shù)據(jù)庫抽象層.它使用第三方庫來完成這些工作.然而,它的結(jié)構(gòu)適于擴(kuò)展,所以你可以比較容易地為它添加必要的功能.它基于WerkzeugWSGI工具箱和jinja模板,它使用BSD許可證.
對于新手來說,推薦上手Flask。
(三) Pyramid
Pyramid以執(zhí)行效率和快速開發(fā)的能力著稱.這個框架最有優(yōu)勢的地方是,它包含了一些Python/Perl/Ruby獨(dú)有的特性.這個開源框架擁有不依賴平臺的MVC架構(gòu),和最快的啟動開發(fā)的能力.
(四)CherryPy
使用CherryPy最好的理由就是它兼容Python,它的Python接口非常Pythonic,讓Python開發(fā)者不會感到突兀.CherryPy是HTTP協(xié)議的一個封裝,這樣其他軟件可以使用它來處理HTTP協(xié)議的細(xì)節(jié).它是一個低層的框架,它只提供 RFC 2616 定義的功能.