22個受歡迎的Python不同類型開源框架(22個受歡迎的python不同類型開源框架)
以下面是我從網(wǎng)上整理的最受歡迎的Python開源框架。這些框架包括事件Web開發(fā),I/O,OLAP,高性能網(wǎng)絡(luò)通信,測試,爬蟲等。
一、Python Web框架
-
Django: Python Web應(yīng)用開發(fā)框架
鏈接:https://www.djangoproject.com/
Django 應(yīng)該是最出名的Python框架,GAE甚至Erlang都有框架受它影響。Django是走大而全的方向,它最出名的是其全自動化的管理后臺:只需要使用起ORM,做簡單的對象定義,它就能自動生成數(shù)據(jù)庫結(jié)構(gòu)、以及全功能的管理后臺。
Flask:一個用Python編寫的輕量級Web應(yīng)用框架
鏈接:https://flask.palletsprojects.com/en/2.2.x/
Flask是一個使用Python編寫的輕量級Web應(yīng)用框架?;赪erkzeug WSGI工具箱和Jinja2 模板引擎。Flask也被稱為“microframework”,因為它使用簡單的核心,用extension增加其他功能。Flask沒有默認使用的數(shù)據(jù)庫、窗體驗證工具。
Bottle: 微型Python Web框架
鏈接:http://bottlepy.org/
Bottle是一個簡單高效的遵循WSGI的微型python Web框架。說微型,是因為它只有一個文件,除Python標準庫外,它不依賴于任何第三方模塊。
webpy: 輕量級的Python Web框架
鏈接:https://webpy.org/
webpy的設(shè)計理念力求精簡(Keep it simple and powerful),源碼很簡短,只提供一個框架所必須的東西,不依賴大量的第三方模塊,它沒有URL路由、沒有模板也沒有數(shù)據(jù)庫的訪問
Web2py:全棧式Web框架
鏈接:https://github.com/web2py/web2py
Web2py是一個為Python語言提供的全功能Web應(yīng)用框架,旨在敏捷快速的開發(fā)Web應(yīng)用,具有快速、安全以及可移植的數(shù)據(jù)庫驅(qū)動的應(yīng)用,兼容Google App Engine。
CubicWeb:面向?qū)ο笤O(shè)計的語義Web應(yīng)用程序框架
鏈接:https://www.cubicweb.org/
一個有趣的系統(tǒng),強調(diào)使用抽象和可重用的代碼塊稱為“多維數(shù)據(jù)集”,但對于某些開發(fā)人員來說可能過于抽象或特殊。
Tornado:異步非阻塞IO的Python Web框架
鏈接:https://github.com/tornadoweb/tornado
Tornado的全稱是Torado Web Server,從名字上看就可知道它可以用作Web服務(wù)器,但同時它也是一個Python Web的開發(fā)框架。最初是在FriendFeed公司的網(wǎng)站上使用,FaceBook收購了之后便開源了出來。
二、Python 事件I/O框架
-
Diesel:基于Greenlet的事件I/O框架
鏈接:http://diesel.io/
Diesel提供一個整潔的API來編寫網(wǎng)絡(luò)客戶端和服務(wù)器。支持TCP和UDP。
三、Python OLAP框架
-
Cubes:輕量級Python OLAP框架
鏈接:http://cubes.databrewery.org/
Cubes是一個輕量級Python框架,包含OLAP、多維數(shù)據(jù)分析和瀏覽聚合數(shù)據(jù)(aggregated data)等工具。
四、Python 網(wǎng)絡(luò)框架
-
Zerorpc:基于ZeroMQ的高性能分布式RPC框架
鏈接:https://github.com/0rpc/zerorpc-python
Zerorpc是一個基于ZeroMQ和MessagePack開發(fā)的遠程過程調(diào)用協(xié)議(RPC)實現(xiàn)。和 Zerorpc 一起使用的 Service API 被稱為 zeroservice。Zerorpc 可以通過編程或命令行方式調(diào)用。
Falcon:構(gòu)建云API和網(wǎng)絡(luò)應(yīng)用后端的高性能Python框架
鏈接:http://falconframework.org/index.html
Falcon是一個構(gòu)建云API的高性能Python框架,它鼓勵使用REST架構(gòu)風格,盡可能以最少的力氣做最多的事情。
Twisted:底層自定義協(xié)議網(wǎng)絡(luò)框架
鏈接:https://www.merriam-webster.com/dictionary/twisted
Twisted是一個高性能的編程框架。在不同的操作系統(tǒng)平臺上,Twisted利用不同的底層技術(shù)實現(xiàn)了高效能通信
五、Python 測試框架
-
Selenium:Web的自動化測試工具
鏈接:http://selenium-python.readthedocs.io/index.html
一個用電腦模擬人操作瀏覽器網(wǎng)頁,最初是為網(wǎng)站自動化測試而開發(fā)的,類型像我們玩游戲用的按鍵精靈,可以按指定的命令自動操作,不同是Selenium 可以直接運行在瀏覽器上,它支持所有主流的瀏覽器(包括PhantomJS這些無界面的瀏覽器)。
unittest:標準庫中自帶的單元測試框架
鏈接:https://docs.python.org/zh-cn/3/library/unittest.html
unittest 單元測試框架是受到 JUnit 的啟發(fā),與其他語言中的主流單元測試框架有著相似的風格。其支持測試自動化,配置共享和關(guān)機代碼測試。支持將測試樣例聚合到測試集中,并將測試與報告框架獨立。
Robot Framework:作為最重要的Python測試框架之一
鏈接:https://github.com/robotframework
Robot Framework主要被用在測試驅(qū)動(test-driven)類型的開發(fā)與驗收中。雖然是由Python開發(fā)而來,但是它也可以在基于.Net的IronPython和基于Java的Jython上運行。同時,作為一個Python框架,Robot還能夠兼容諸如Windows、MacOS、以及Linux等平臺
Pytest:適用于多種軟件測試的Pytest
鏈接:https://realpython.com/pytest-python-testing/
憑借著其開源和易學的特點,該工具經(jīng)常被QA(質(zhì)量分析)團隊、開發(fā)團隊、個人團隊、以及各種開源項目所使用。鑒于Pytest具有“斷言重寫(assert rewriting)”之類的實用功能,許多大型互聯(lián)網(wǎng)應(yīng)用,如Dropbox和Mozilla,都已經(jīng)從下面將要提到的unittest(Pyunit)切換到了Pytest之上。
六、Python 爬蟲框架
-
Scrapy:Python的爬蟲框架
鏈接:https://github.com/scrapy/scrapy
Scrapy是一個使用Python編寫的,輕量級的,簡單輕巧,并且使用起來非常的方便。
PySpider:binux做的一個爬蟲架構(gòu)
鏈接:https://github.com/binux/pyspider
強大的網(wǎng)絡(luò)爬蟲系統(tǒng),并自帶有強大的webUI,分布式架構(gòu),支持多種數(shù)據(jù)庫后端。
Portia:一個開源可視化爬蟲工具
鏈接:https://github.com/scrapinghub/portia
可以讓使用者在不需要任何編程知識的情況下爬取網(wǎng)站。簡單地注釋自己感興趣的頁面,Portia將創(chuàng)建一個蜘蛛來從類似的頁面提取數(shù)據(jù)。
七、其他
-
Kartograph.py:創(chuàng)造矢量地圖的輕量級Python框架
鏈接:https://github.com/kartograph/kartograph.py
Kartograph是一個Python庫,用來為ESRI生成SVG地圖。Kartograph.py目前仍處于beta階段,你可以在virtualenv環(huán)境下來測試。
Pulsar:Python的事件驅(qū)動并發(fā)框架
鏈接:https://github.com/quantmind/pulsar
Pulsar是一個事件驅(qū)動的并發(fā)框架,有了pulsar,你可以寫出在不同進程或線程中運行一個或多個活動的異步服務(wù)器。
Dpark:Python版的Spark
鏈接:https://github.com/douban/dpark
DPark是Spark的Python克隆,是一個Python實現(xiàn)的分布式計算框架,可以非常方便地實現(xiàn)大規(guī)模數(shù)據(jù)處理和迭代計算。DPark由豆瓣實現(xiàn),目前豆瓣內(nèi)部的絕大多數(shù)數(shù)據(jù)分析都使用DPark完成,正日趨完善。