學習任何一門開發語言都離不開框架,一個框架就比如是一個毛坯房,只須要咱們裝修就能夠入住。若是沒有框架咱們就只能一磚一瓦的去蓋樓房了。框架的種類不少,具體選擇要根據實際的業務狀況。下面就簡單的介紹一下Python七款開源框架的優劣。
Django 應該是最出名的Python框架,GAE甚至Erlang都有框架受它影響。Django是走大而全的方向,它最出名的是其全自動化的管理後臺:只須要使用起ORM,作簡單的對象定義,它就能自動生成數據庫結構、以及全功能的管理後臺。程序員
優勢:web
缺點:shell
優勢:數據庫
缺點:安全
Flask只是一個內核,默認依賴於兩個外部庫:Jinja2 模板引擎和 Werkzeug WSGI 工具集,其餘不少功能都是以擴展的形式進行嵌入使用。服務器
Scrapy是Python開發的一個快速、高層次的屏幕抓取和web抓取框架,用於抓取web站點並從頁面中提取結構化的數據。Scrapy用途普遍,能夠用於數據挖掘、監測和自動化測試。微信
優勢:網絡
Scrapy是一個功能很是強大的爬蟲框架,它不只能便捷地構建request,還有強大的selector可以方便地解析response,然而它最受歡迎的仍是它的性能,既抓取和解析的速度,它的downloader是多線程的,request是異步調度和處理的。這兩點使它的爬取速度很是之快。多線程
另外還有內置的logging,exception,shell等模塊,爲爬取工做帶來了不少便利。架構
缺點:
scrapy是封裝起來的框架,他包含了下載器,解析器,日誌及異常處理,基於多線程, twisted的方式處理,對於固定單個網站的爬取開發,有優點,可是對於多網站爬取100個網站,併發及分佈式處理方面,不夠靈活,不便調整與括展。
Tornado是一種 Web 服務器軟件的開源版本。Tornado 和如今的主流 Web 服務器框架(包括大多數 Python 的框架)有着明顯的區別:它是非阻塞式服務器,並且速度至關快。
優勢:
Tornado擅長爲須要嚴密控制異步網絡細節的應用程序提供基礎架構。例如,Tornado不只提供內置的異步HTTP服務器,還提供異步HTTP客戶端。所以,Tornado很是適合構建應用程序,例如Web scraper或bot,它們並行查詢其餘站點並對返回的數據進行操做。
缺點:
模板和數據庫部分有不少第三方的模塊可供選擇,這樣不利於封裝爲一個功能模塊。
web2py是一個爲Python語言提供的全功能Web應用框架,旨在敏捷快速的開發Web應用,具備快速、安全以及可移植的數據庫驅動的應用,兼容 Google App Engine。
優勢:
Web2py最大的吸引力在於其內置的開發環境。當設置Web2py實例時,將得到一個Web界面,其實是一個在線Python應用程序編輯器,能夠在其中配置應用程序的組件。這一般意味着建立模型,視圖和控制器,每一個都經過Python模塊或HTML模板進行描述。
缺點:
Web2py的一個重要限制是它僅與Python 2.x兼容。首先這意味着Web2py沒法使用Python 3的異步語法。若是你依賴於Python3獨有的外部庫,那麼你就不走運了。可是,正在開展使Web2py Python3兼容的工做,而且在撰寫本文時它已接近完成。
Weppy感受就像Flask的簡約風格和Django的完整性之間的中間標記。雖然開發Weppy應用程序具備Flash的直接性,但Weppy具備Django中的許多功能,如數據層和身份驗證。所以,Weppy適用於從極其簡單到適度複雜的應用程序。
優勢:
Weppy的文檔與框架自己具備相同的風格。它乾淨,可讀,而且被人類消費。除了一般的「hello world」應用程序示例以外,它還包含一個很好的演練教程,可讓你建立一個微博系統做爲初學者項目。
缺點:
雖然Weppy有一個擴展機制,但官方批准的附加組件列表很小,遠小於Flask的擴展目錄。
Bottle能夠被認爲是一種迷你燒瓶,由於它比其餘「微框架」更加緊湊和簡潔。因爲其佔地面積最小,Bottle很是適合包含在其餘項目中或快速交付REST API等小型項目。
優勢:
Bottle不須要像其餘框架那樣多的文檔,但文檔毫不是吝嗇。全部關鍵的東西都適合單個(儘管很長)的網頁。除此以外,還能夠找到每一個API的完整文檔,如何在各類基礎架構上進行部署的示例,內置模板語言的解釋以及一系列常見配方。
缺點:
Bottle極簡主義的一個後果是有些功能根本就不存在。不支持表單驗證,包括CSRF保護等功能。若是要構建支持高度用戶交互的Web應用程序,則須要本身添加它們。
逆鋒起筆
是一個專一於程序員圈子的技術平臺,你能夠收穫最新技術動態
、最新內測資格
、BAT等大廠大佬的經驗
、增加自身
、學習資料
、職業路線
、賺錢思惟
,微信搜索逆鋒起筆
關注!