15個最受歡迎的Python開源框架(轉載)

  1、Django: Python Web應用開發框架
python

 

    Django是一個開放源代碼的Web應用框架,由Python寫成。採用了MVC的軟件設計模式,即模型M,視圖V和控制器C。它最初是被開發來用於管理勞倫斯出版集團旗下的一些以新聞內容爲主的網站的,nginx

  便是CMS(內容管理系統)軟件。並於2005年7月在BSD許可證下發布。這套框架是以比利時的吉普賽爵士吉他手Django Reinhardt來命名的。程序員

           Django 應該是最出名的Python框架,GAE甚至Erlang都有框架受它影響。Django是走大而全的方向,它最出名的是其全自動化的管理後臺:只須要使用起ORM,作簡單的對象定義,它就能自動生成數據庫結構、以及全功能的管理後臺。web

           Django提供的方便,也意味着Django內置的ORM跟框架內的其餘模塊耦合程度高。應用程序必須使用Django內置的ORM,不然就不能享受到框架內提供的種種基於其ORM的便利;理論上能夠切換掉其ORM模塊,數據庫

  但這就至關於要把裝修完畢的房子拆除從新裝修,倒不如一開始就去毛胚房作全新的裝修。Django的賣點是超高的開發效率,其性能擴展有限;採用Django的項目,在流量達到必定規模後,都須要對其進行重構,才能知足性能的要求。django

 

  2、Diesel:基於Greenlet的事件I/O框架
編程

 

    Diesel提供一個整潔的API來編寫網絡客戶端和服務器。支持TCP和UDP。後端

    你應該使用diesel來編寫你的下一個網絡應用。得益於Python使得diesel語法很是整潔,發展步伐很是迅速。非阻塞I/O使得diesel很是快速而且容易擴展。greenlets使得diesel有了unwind(to(callbacks(no)))。設計模式

    nose使得測試變得容易。最後,Flask使得你不須要寫一個新的網絡框架來使用diesel。安全

  示例

    

                           須要框架項目實戰視頻  +  Python學習交流   643692991   

  3、Flask:一個用Python編寫的輕量級Web應用框架

 

    Flask是一個使用Python編寫的輕量級Web應用框架。基於Werkzeug WSGI工具箱和Jinja2 模板引擎。 Flask使用BSD受權。 Flask也被稱爲「microframework」,由於它使用簡單的核心,用extension增長其餘功能。

  Flask沒有默認使用的數據庫、窗體驗證工具。然而,Flask保留了擴增的彈性,能夠用Flask-extension加入這些功能:ORM、窗體驗證工具、文件上傳、各類開放式身份驗證技術。

 

  Flask 頗有趣

 

    

    配置簡單

    

  特性

    一、內置開發用服務器和debugger

    二、集成單元測試(unit testing)

    三、RESTful request dispatching

    四、使用Jinja2模板引擎

    五、支持secure cookies(client side sessions)

    六、100% WSGI 1.0兼容

    七、Unicode based

    八、詳細的文件、教學

    九、Google App Engine兼容

    十、可用Extensions增長其餘功能

 

  4、Cubes:輕量級Python OLAP框架

    Cubes是一個輕量級Python框架,包含OLAP、多維數據分析和瀏覽聚合數據(aggregated data)等工具

    Cubes的主要特性之一是它的邏輯模型,抽象物理數據並提供給終端用戶層。

    

                              須要框架項目實戰視頻  +  Python學習交流   643692991  

 

  5、Kartograph.py:創造矢量地圖的輕量級Python框架

 

    Kartograph是一個Python庫,用來爲ESRI生成SVG地圖。Kartograph.py目前仍處於beta階段,你能夠在virtualenv環境下來測試。

    



  6、Pulsar:Python的事件驅動併發框架

 

    Pulsar是一個事件驅動的併發框架,有了pulsar,你能夠寫出在不一樣進程或線程中運行一個或多個活動的異步服務器。

  應用

    附帶如下功能

    一、Socket服務器

    二、WSGI服務器

    三、JSON-RPC

    四、Web Sockets

    五、任務隊列

    六、Shell

    七、測試包

    八、django集成

  示例

    對全部請求都返回「Hello World!」做爲響應

 

    


                       須要框架項目實戰視頻  +  Python學習交流   643692991  

  7、Web2py:全棧式Web框架

 

    Web2py是一個爲Python語言提供的全功能Web應用框架,旨在敏捷快速的開發Web應用,具備快速、安全以及可移植的數據庫驅動的應用,兼容Google App Engine。

  Web2py目錄結構

 

    

 

  8、Falcon:構建雲API和網絡應用後端的高性能Python框架

       

    Falcon是一個構建雲API的高性能Python框架,它鼓勵使用REST架構風格,儘量以最少的力氣作最多的事情。

  特性

    一、經過URI模板和資源類的路由

    二、經過請求和響應類訪問headers和bodies

    三、經過異常基類響應HTTP錯誤等等

  基準測試

    

    

 

    
                           須要框架項目實戰視頻  +  Python學習交流   643692991  

  9、Dpark:Python版的Spark

 

    

    DPark是一個基於Mesos的集羣計算框架(cluster computing framework),是Spark的Python實現版本,相似於MapReduce,可是比其更靈活,能夠用Python很是方便地進行分佈式計算,而且提供了更多的功能以便更好

  的進行迭代式計算。DPark的計算模型是基於兩個中心思想的:對分佈式數據集的並行計算以及一些有限的能夠在計算過程當中、從不一樣機器訪問的共享變量類型。這個的目標是爲了提供一種相似於global address space

   programming model的工具,例如OpenMP,可是咱們要求共享變量的類型必須是那些很容易在分佈式系統當中實現的,當前支持的共享變量類型有隻讀的數據和支持一種數據修改方式的累加器(accumulators)。

  DPark具備的一個很重要的特性:分佈式的數據集能夠在多個不一樣的並行循環當中被重複利用。這個特性將其與其餘數據流形式的框架例如Hadoop和Dryad區分開來。

  示例

    一個word counting程序

 

    

    上面的腳本能夠無修改的在Mesos集羣上運行,只需稍微修改一下命令行參數:

    


  10、Buildbot:基於Python的持續集成測試框架

 

    Buildbot是一個開源框架,能夠自動化軟件構建、測試和發佈等過程。每當代碼有改變,服務器要求不一樣平臺上的客戶端當即進行代碼構建和測試,收集並報告不一樣平臺的構建和測試結果。

 

    

                            須要框架項目實戰視頻  +  Python學習交流   643692991  

  11、Zerorpc:基於ZeroMQ的高性能分佈式RPC框架

 

    Zerorpc是一個基於ZeroMQ和MessagePack開發的遠程過程調用協議(RPC)實現。和 Zerorpc 一塊兒使用的 Service API 被稱爲 zeroservice。Zerorpc 能夠經過編程或命令行方式調用。

    它容許你:

    一、不用修改代碼便可顯露python模塊

    二、經過命令行遠程調用這些模塊

    如何把你代碼中的對象暴露爲一個zeroservice?

 

    

    運行以上代碼,在另外一個終端,嘗試鏈接這個zeroservice

    

  12、Bottle: 微型Python Web框架

 

    Bottle是一個簡單高效的遵循WSGI的微型python Web框架。說微型,是由於它只有一個文件,除Python標準庫外,它不依賴於任何第三方模塊。

  特性

    一、Routing:把請求映射到函數,創建簡潔動態的URLs

    二、Templates:採用內置模板引擎,同時還支持 mako, jinja2, cheetah 等第三方模板

    三、Utilities:便捷地讀取表單數據、上傳文件、 cookies、HTTP頭信息和其它 HTTP相關的元數據

    四、Server:內置HTTP開發服務器,而且支持 paste, fapws3, bjoern, Google App Engine, Cherrypy 或者其它任何WSGI HTTP 服務器

 

  示例

    


    運行上面的代碼,訪問http://localhost:8080/hello/bottle試試。

  下載和安裝

    經過

    

    或者

    

    安裝最新穩定版,或者下載bottle.py (不穩定)到你的工程目錄。Bottle運行於Python 2.5+ and 3.x環境下。

              須要框架項目實戰視頻  +  Python學習交流   643692991  

  十3、Tornado:異步非阻塞IO的Python Web框架

 

    Tornado的全稱是Torado Web Server,從名字上看就可知道它能夠用做Web服務器,但同時它也是一個Python Web的開發框架。最初是在FriendFeed公司的網站上使用,FaceBook收購了以後便開源了出來。

    做爲Web框架,是一個輕量級的Web框架,相似於另外一個Python web 框架Web.py,其擁有異步非阻塞IO的處理方式。

    做爲Web服務器,Tornado有較爲出色的抗負載能力,官方用nginx反向代理的方式部署Tornado和其它Python web應用框架進行對比,結果最大瀏覽量超過第二名近40%。

    此外,它的源代碼也是Python開發者學習與研究的絕佳材料。

    如下是Tornado的Hello World示例程序。

 

    

  十4、webpy: 輕量級的Python Web框架

 

    webpy的設計理念力求精簡(Keep it simple and powerful),源碼很簡短,只提供一個框架所必須的東西,不依賴大量的第三方模塊,它沒有URL路由、沒有模板也沒有數據庫的訪問。這樣的優勢是,

  框架給開發帶來的限制少,能夠根據本身的需求進行定製。缺點就是,不少東西都須要本身親自動手開發。

             雖然webpy的做者Aaron H.Swartz,一位偉大的程序員在2013年1月11日自殺身亡,結束了短暫的26年生命。可是,做爲一個開源項目,目前仍是有不少開發者在持續更新。

    webpy很是的簡單,語法幾乎跟Python同樣,如下是一個簡單的示例:

 

    

                                    須要框架項目實戰視頻  +  Python學習交流   643692991  

  十5、Scrapy:Python的爬蟲框架

 

             網絡爬蟲,是在網上進行數據抓取的程序,使用它可以抓取特定網頁的HTML數據。雖然咱們利用一些庫開發一個爬蟲程序,可是使用框架能夠大大提升效率,縮短開發時間。Scrapy是一個使用Python編寫的,

  輕量級的,簡單輕巧,而且使用起來很是的方便。

  Scrapy使用了Twisted異步網絡庫來處理網絡通信。總體架構大體以下(注:圖片來自互聯網):

 

    

    Scrapy主要包括瞭如下組件:

    一、引擎,用來處理整個系統的數據流處理,觸發事務。

    二、調度器,用來接受引擎發過來的請求,壓入隊列中,並在引擎再次請求的時候返回。

    三、下載器,用於下載網頁內容,並將網頁內容返回給蜘蛛。

    四、蜘蛛,蜘蛛是主要幹活的,用它來制訂特定域名或網頁的解析規則。

    五、項目管道,負責處理有蜘蛛從網頁中抽取的項目,他的主要任務是清晰、驗證和存儲數據。當頁面被蜘蛛解析後,將被髮送到項目管道,並通過幾個特定的次序處理數據。

    六、下載器中間件,位於Scrapy引擎和下載器之間的鉤子框架,主要是處理Scrapy引擎與下載器之間的請求及響應。

    七、蜘蛛中間件,介於Scrapy引擎和蜘蛛之間的鉤子框架,主要工做是處理蜘蛛的響應輸入和請求輸出。

    八、調度中間件,介於Scrapy引擎和調度之間的中間件,從Scrapy引擎發送到調度的請求和響應。

    使用Scrapy能夠很方便的完成網上數據的採集工做,它爲咱們完成了大量的工做,而不須要本身費大力氣去開發。

相關文章
相關標籤/搜索