1. Flask 簡介
Flask 是一個 Python 實現(xiàn)的 Web 開發(fā)微框架藻雌。github地址:https://github.com/pallets/flask
“微”(micro) 并不表示你需要把整個 Web 應(yīng)用塞進單個 Python 文件(雖然確實可以)渔伯,也不意味著 Flask 在功能上有所欠缺按脚。微框架中的“微”意味著 Flask 旨在保持核心簡單而易于擴展即彪。Flask 不會替你做出太多決策——比如使用何種數(shù)據(jù)庫苗分。而那些
Flask 所選擇的——比如使用何種模板引擎——則很容易替換供鸠。除此之外的一切都由可由你掌握豫柬。如此,F(xiàn)lask 可以與您珠聯(lián)璧合桥温。默認情況下引矩,F(xiàn)lask 不包含數(shù)據(jù)庫抽象層、表單驗證侵浸,或是其它任何已有多種庫可以勝任的功能旺韭。然而,F(xiàn)lask支持用擴展來給應(yīng)用添加這些功能掏觉,如同是 Flask本身實現(xiàn)的一樣区端。眾多的擴展提供了數(shù)據(jù)庫集成、表單驗證澳腹、上傳處理织盼、各種各樣的開放認證技術(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表單驗證和用戶認證等高級功能弥雹。這些功能以及其他大多數(shù)Web程序中需要的核心服務(wù)都以擴展的形式實現(xiàn), 然后再與核心包集成近弟。開發(fā)者可以任意挑選符合項目需求的擴展缅糟, 甚至可以自行開發(fā)。
2. Web開發(fā)框架
(一) Django
Django是以快速開發(fā)和結(jié)構(gòu)整潔著稱的高層框架.這個開源免費的框架完全由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)適于擴展,所以你可以比較容易地為它添加必要的功能.它基于WerkzeugWSGI工具箱和jinja模板扇苞,它使用BSD許可證.
對于新手來說欺殿,推薦上手Flask。
(三) Pyramid
Pyramid以執(zhí)行效率和快速開發(fā)的能力著稱.這個框架最有優(yōu)勢的地方是鳖敷,它包含了一些Python/Perl/Ruby獨有的特性.這個開源框架擁有不依賴平臺的MVC架構(gòu)脖苏,和最快的啟動開發(fā)的能力.
(四)CherryPy
使用CherryPy最好的理由就是它兼容Python,它的Python接口非常Pythonic定踱,讓Python開發(fā)者不會感到突兀.CherryPy是HTTP協(xié)議的一個封裝棍潘,這樣其他軟件可以使用它來處理HTTP協(xié)議的細節(jié).它是一個低層的框架,它只提供 RFC 2616 定義的功能.