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