Python Web 框架最全介绍,建议收藏!

python常用Web框架介绍 特点:高层次的Python Web框架,鼓励快速开发和简洁的设计。优点:自带ORM、强大的管理后台、用户认证系统、自动生成的管理界面等。适用场景:适用于需要快速开发、拥有丰富功能和需要强大后端管理的项目。在models.pyFastAPI 是一个高性能、易于使用且功能强大的 Web 框架,适用于从小型项目到大型高并发应用的开发。通过使用 Python 的类型提示和现代异步编程技术,FastAPI 提供了一个高效且开发者友好的环境,使得开发、测试和部署 Web 应用变得更加简洁和高效。 阅读详情
AI摘要

作者整理了Python中所有网站开发库(Web框架)。介绍了Web框架的定义、作用及使用原因,还按使用人数和文档活跃度对框架排序。详细阐述了Django、Flask等37个框架的官网、优缺点,为开发者提供了参考。

你好,我是 EarlGrey,一名双语学习者,会一点编程,目前已翻译出版《Python 无师自通》、《Python 并行编程手册》等书籍。

点击上方蓝字关注我,在后台回复“books”,即可领取超值优质电子书合集。

来源丨Python小二

用了 2 周的时间整理了 Python 中所有的网站开发库(下文简称:Web 框架),供大家学习参考。

7cf8f246adb713dac7c9cec136b8a665.jpeg

Q:Web 框架到底是什么?

A:Web 框架主要用于网站开发。开发者在基于 Web 框架实现自己的业务逻辑。Web 框架实现了很多功能,为实现业务逻辑提供了一套通用方法。

Q:Web 框架有什么作用?

A:使用 Web 框架,很多的业务逻辑外的功能不需要自己再去完善,而是使用框架已有的功能就可以。Web 框架使得在进行 网站开发的时候,减少了工作量。

Q:我们为什么要使用 Web 框架?

A:Web 框架主要用于网站开发,可以实现数据的交互和业务功能的完善。使用 Web 框架进行 网站开发的时候,在进行数据缓存、数据库访问、数据安全校验等方面,不需要自己再重新实现,而是将业务逻辑相关的代码写入框架就可以。

库排序是按照使用人数和文档的活跃度为参考进行的,建议大家使用排名靠前的框架,因为它们的文档更齐全,技术积累要更多,社区更繁盛,能得到更好的支持,这样在遇到自己无法解决的问题,可以更快更高效的找到解答的方案。

1. Django 框架

官 网:

https://github.com/django/django.git

优 点:是一个高层次 Python Web 开发框架,特点是开发快速、代码较少、可扩展性强。Django 采用 MTV(Model、Template、View)模型组织资源,框架功能丰富,模板扩展选择最多。对于专业人员来说,Django 是当之无愧的 Python 排名第一的 Web 开发框架。

缺 点:包括一些轻量级应用不需要的功能模块,不如 Flask 轻便。过度封装很多类和方法,直接使用比较简单,但改动起来比较困难。相比于 C,C++ 性能,Djang 性能偏低。模板实现了代码和样式完全分离,不允许模板里出现 Python 代码,灵活度不够。另外学习曲线也相对陡峭。

b205ce83d2578fd72ef5ef21578c8304.png

2. Flask 框架

官 网:

https://flask.palletsprojects.com/en/2.0.x/

优 点:Flask 是一个 Python Web 开发的微框架,严格来说,它仅提供 Web 服务器支持,不提供全栈开发支持。然而,Flask 非常轻量、非常简单,基于它搭建 Web 系统都以分钟来计时,特别适合小微原型系统的开发。花少时间、产生可用系统,是非常划算的选择。

缺 点:对于大型网站开发,需要设计路由映射的规则,否则导致代码混乱。对新手来说,容易使用低质量的代码创建 “不良的 web 应用程序”。

568d8dd0581fbd12954a8010a68499a2.png

3. Pyramid 框架

官 网: 

https://trypyramid.com/

优 点:是一个扩展性很强且灵活的 Python Web 开发框架。上手十分容易,比较适合中等规模且边开发边设计的场景。Pyramid 不提供绝对严格的框架定义,根据需求可以扩展开发,对高阶程序员十分友好。

缺 点:国内知名度不高,高级用法需要通过阅读源代码获取灵感。默认使用 Chameleon 模板,灵活度没有成为一个要素。

4d24756331ab8fc9042ea8d41b2946c1.png

4. web.py 框架

官 网:

https://webpy.org/

优 点:正如其名,web.py 是一个采用 Python 作为开发语言的 Web 框架,简单且强大。俄罗斯排名第一的 Yandex 搜索引擎基于这个框架开发,Guido van Rossum 认为这是最好的 Python Web 框架,还需要说别的吗?有事实作证、有大牛认可,用起来吧!

缺 点:Web.py 并未像其他框架一样保持与 Python 3 兼容性的最新状态。这不仅意味着缺乏对异步语法的支持,还意味着缺少对已弃用的函数的错误。此外,目前尚不清楚维护者是否有计划在 Python 2 到达其支持生命周期结束后保持 Web.py 的最新状态。

eeaf08f303907204e755c5ac30c703bb.png

5. Tornado 框架

官 网:

https://www.tornadoweb.org/en/stable/

优 点:Tornado 是一个基于异步网络功能库的 Web 开发框架,因此,它能支持几万个开放连接,Web 服务高效稳定。可见,Tornado 适合高并发场景下的 Web 系统,开发过程需要采用 Tornado 提供的框架,灵活性较差,确定场景后再考虑使用不迟。

缺 点:Tornado 5.0 改进了与 Python 的本机异步功能的集成。因此不再支持 Python 3.3,并且 Python 3.5 用户必须使用 Python 3.5.2 或更高版本。Tornado 6.0 将需要 Python 3.5 及更高版本,并将完全放弃 Python 2 支持。

62ee221868b126b2deefddf2bc6887c9.png

6. TurboGears 框架

官 网:

https://www.turbogears.org/

优 点:TurboGears 最新版本 试图解决 TurboGears 最初版本、Django、Rails 等框架缺陷,它支持多数据库、JavaScript 工具集、多种数据交换格式等,当然,它开发非常高效,扩展性很强。试问它与 Django 哪个更好?还真不好说,Django 社区更为活跃或许更重要。

缺 点:TurboGears 的一些缺点包括管理功能较为基础,较少的第三方应用程序以及只有初级的文档。TurboGears 的一个重大挑战是它的压倒性。因为它混搭的其他组件都提供无限的灵活性, 当试图决定何种路径来完成一个任务时它是过于复杂的。

7245905b0f6be7ab3c570bef83bf05ec.png

7. CherryPy 框架

官 网:

https://cherrypy.org/

优 点:CherryPy 能够让开发者按照其他面向对象程序相似的设计方法开发 Web 系统,进而采用最少的代码、最简洁的方式。CherryPy 已经开发了 10 年之久,稳定性较好,非常适合小规模 Web 系统和纯粹的 Python 程序员。感受到了什么?Python 大有一统江湖之势!拭目以待。

缺 点:只包含为 web 页面提供服务所需的少量内容外,它应该尽可能地让人感觉它不像 “web 框架”,而是像任何其他类型的 Python 应用程序一样。CherryPy 包含的位用作低级构建块。包括会话标识符和 cookie 处理,但不包括 HTML 模板。像 Bottle 一样,CherryPy 提供了一种将路由映射到磁盘上的目录以供静态文件服务的方法。

c2399f2d260d71cbd394c61abd8e2145.png

8. Falcon 框架

官 网:

http://falconframework.org/

优 点:Falcon 是一个支持大规模微服务 API 或移动 App 后端响应的 Web 开发框架,它完全基于 Python 并提供了非常高的性能、可靠性和可扩展性。Falcon 定位独特且特色鲜明,对于 App 开发者,后端系统构建不妨考虑 Falcon,十之八九是不会后悔的。

缺 点:Falcon 缺点是其打包模块有点太少,有路由,中间件,钩子,除此之外就不提供其他功能了(裸壳)。额外其他功能,比如验证等都需要开发人员来开发扩展。因为其设计中就假设用于构建 REST API。

b567f6b590d38767603cf8f57b3c5bb8.png

9. Asgineer 框架

官 网:

https://asgineer.readthedocs.io/

优 点:Asgineer 是一种编写异步 Web 应用程序的工具,使用尽可能少的抽象,同时仍然提供友好的 API。只需几分钟即可阅读指南和参考资料!在 Uvicorn 上运行 Asgineer 时,它是可用的最快的 Web 框架之一。它支持 http 长轮询、服务器端事件 (SSE) 和 websockets。并且具有以正确(且快速)的方式为资产提供服务的实用程序。

缺 点:中文文档匮乏。

10. Bottle 框架

官 网:

https://bottlepy.org/docs/dev/

优 点:Bottle 是一个用于 Python 的快速、简单和轻量级的 WSGI 微型网络框架。它作为单个文件模块分发,除了 Python 标准库之外没有任何依赖项。支持干净和动态的 URL。快速和 Pythonic 内置模板引擎,支持 mako、jinja2 和 cheetah 模板。方便地访问表单数据、文件上传、cookie、标题和其他与 HTTP 相关的元数据。

缺 点:Bottle 极简主义的一个后果是有些功能根本就不存在。不支持表单验证,包括 CSRF 保护等功能。如果要构建支持高度用户交互的 Web 应用程序,则需要自己添加它们。

5ba43a32d92e95d9bdd01c16c51dfc8d.png

11. Emmett 框架

官 网:

https://emmett.sh/

优 点:编写优雅的代码,专注于您的产品,你应该把更多的时间花在你的产品而不是底层框架上。Emmett 是发明家的框架,因为它旨在简化您的开发过程,其语法简单、易于学习和理解。不要在路由器和不舒服的模式之间浪费时间:每次为应用程序写下路由时,一切都清楚地呈现在您的眼前。

缺 点:中文文档匮乏。

6dd251147b44806afca0c9711b9e8a9c.png

12. apidaora 框架

官 网:

https://github.com/dutradda/apidaora

优 点:使用类型注释将请求 / 响应声明为数据类和字典,使用 jsondaora 验证输入数据,最快的 python api 框架之一,可以在任何 asgi 服务器上运行。

缺 点:中文文档匮乏。

25a50ed269ed4101b0c0f21f90630779.png

13. Quixote 框架

官 网:

http://www.quixote.ca/

优 点:Quixote 是一个使用 Python 编写基于 Web 的应用程序的框架。它的目标是按此顺序实现灵活性和高性能。Quixote 应用程序的结构往往类似于传统应用程序。格式化网页的逻辑由 Python 类和函数组成。Quixote 不强制分离表示逻辑和 “后端” 逻辑。相反,我们鼓励您使用传统技术。例如,一种解决方案是将表示逻辑放在其自己的子包中。

缺 点:虽然 Quixote 得到积极维护,但发布频率较低。最近开发的重点是修复错误、提高标准合规性和增加 Quixote 的灵活性。

876baf073df08f147e74518e69dfaccc.png

14. reahl 框架

官 网:

https://www.reahl.org/

优 点:reahl 是一个可以让开发者完全用 Python 语言编写 Web 应用的开放框架,采用 Python 作为唯一开发语言是其最大特色。此外,reahl 提供了相当清晰且简明的开发组建,对于开发一般功能性 Web 系统足够清晰且可行。

缺 点:提供抽象词汇时,无法掌握一些更高级的用户界面效果,目前不允许使用 Sass 构建 Bootstrap 的修改版本,并支持更高级的用户界面模式

a505b1786a9c49e9c4c210cfa301ce8d.png

15. hug 框架

官 网:

https://hug.rest/

优 点:Hug 是一个 Python 3 API 开发框架。它的设计使软件工程师可以一次开发 API,然后在需要时再使用它。Hug 框架通过提供各种接口来简化 API 开发。这就是为什么该框架被称为 Python 3 中最快的框架之一的主要原因。

缺 点:它使用以前的 WSGI 标准,这是一个同步框架,所以它不能处理像 WebSockets 和其他异步请求,不管怎么说,它仍然有非常好的性能表现。

66bd85f6e42b20eb7c64c361f9e7879e.png

16. BlackSheep 框架

官 网:

https://github.com/Neoteroi/BlackSheep

优 点:BlackSheep 是一个异步 Web 框架,用于使用 Python 构建基于事件的 Web 应用程序。它的灵感来自 Flask、ASP.NET Core 和 Yury Selivanov 的工作。

缺 点:中文文档匮乏。

be3868b670678d5ca5e5cb3f7cda14ef.png

17. Index.py 框架

官 网:

https://index-py.aber.sh/stable/

优 点:实现了 ASGI3 接口并使用 Radix Tree 进行路由查找。是最快的 Python web 框架之一。一切特性都服务于快速开发高性能的 Web 服务。大量正确的类型注释,灵活且高效的路由系统,可视化 API 接口与在线调试,支持 Server-sent events 与 WebSocket,自带一键部署命令 (基于 uvicorn 与 gunicorn),可使用任何可用的 ASGI 生态。

缺 点:Index.py 不内置数据库、缓存等其他功能。选择困难者请直接使用 Django。

e891f8afce2d31d5c45eead375fd2a3a.png

18. Sanic 框架

官 网:

https://github.com/sanic-org/sanic

优 点:Sanic 是一个 Python 3.7+ web 服务器和 web 框架,它的编写速度很快。它允许使用 Python 3.5 中添加的 async/await 语法,这使您的代码无阻塞且快速。该项目的目标是提供一种简单的方法来启动和运行一个高性能的 HTTP 服务器,该服务器易于构建、扩展和最终扩展。

缺 点:就功能方面 Sanic 模仿 Flask,比如通过共享 Blueprints 的概念,微小的子应用程序,允许开发人员在更大的应用程序中拆分和组织其代码。对于光光是数据增删改查 CRUD 应用,Sanic 也不是一个好的选择。

b0f844a66630746f424249b36d2e2bdc.png

19. Starlette 框架

官 网:

https://pypi.org/project/starlette/

优 点:Starlette 是一个轻量级的 ASGI 框架 / 工具包,非常适合构建性能异步服务,它是生产就绪的,并为您提供以下内容:令人印象深刻的表现。WwbSocket 支持。GraphQL 支持。进程内后台任务。启动和关闭事件。基于请求构建的测试客户端。CORS、GZip、静态文件、流响应。会话和 Cookie 支持。100% 的测试覆盖率。100% 类型注释代码库。零硬依赖。

缺 点:Starlette 提供了所有基本的 Web 微框架功能。但是它不提供自动数据验证,序列化或 API 文档。

03b63bbebd1a5491ca9cdba0abb1c167.png

20. Fastapi 框架

官 网:

https://fastapi.tiangolo.com/

优 点:FastAPI 是一个现代、快速(高性能)的 Web 框架,用于基于标准 Python 类型提示使用 Python 3.6+ 构建 API。非常高的性能,与 NodeJS 和 Go 相当(感谢 Starlette 和 Pydantic)。可用的最快的 Python 框架之一。减少大约 40% 的人为(开发人员)引发的错误。简短,简单,直观,健壮。

缺 点:本身不带模板语法,需要安装模板语法

27fa6a2303c13a28e4de54fa543fea2e.png

21. Responder 框架

官 网:

https://python-responder.org/

优 点:是 kennethreitz 新开发的一个项目,是一个基于 Python 的 HTTP 服务框架。底层用了 Starlette 的框架,Starlette 是一款轻量级的 ASGI 框架 / 工具包, 可以用 Starlette 构建高性能的异步 IO 服务。相对于 Starlette , responder 对开发者更加友好一点。kennethreitz 写了 requests 号称 "HTTP for Humans" 更加清楚这一点。事实上比较下来,responder 也比 Starlette 优雅很多。

缺 点:可能是新项目, 打包还不太完善。就目前版本而言,少许代码还不能正常工作。但接口形式已经定义完毕,期待后面版本会加上去。

22. Molten 框架

官 网:

https://moltenframework.com/

优 点:Molten 是一个最小的、可扩展的、快速的和高效的框架,用于使用 Python 构建 HTTP API。计划自动验证请求,代码更容易维护。实例可自动序列化,包含 API 在现实世界中通常要求的各种功能,广泛使用 PEP484 类型提示和 mypy。

缺 点:它没有使用像第三方库(如 Pydantic)提供数据验证,序列化和文档,它有自己的库。因此,这些数据类型定义将不太容易重用。依赖注入系统需要对依赖项进行预注册,并且将基于已声明的类型解决依赖问题。因此,不可能声明多个组件来提供一个特定的类型。

8a8abc0d0a7f298d880aa26586489acb.png

23. Clastic 框架

官 网:

https://github.com/mahmoud/clastic

优 点:一个功能强大的 Python Web 框架,可简化显式开发实践,同时消除全局状态。Clastic 是完全用 Python 语言编写的,增强可重用性和可测试性,主动 URL 路由检查,更好地控制应用程序初始化,改进的中间件范例,没有全局状态,ORM 用法,更容易的 WSGI 集成。

缺 点:Clastic 没有构建全局状态;URL 路由规则参数和视图函数签名不匹配,在 Clastic 中,这种不匹配会在构建应用程序时引发异常。

24. Aiohttp 框架

官 网:

https://docs.aiohttp.org/en/stable/

优 点:用于 asyncio 和 Python 的异步 HTTP 客户端 / 服务器。支持客户端和 HTTP 服务器,支持开箱即用的服务器 WebSockets 和客户端 WebSockets,没有回调地狱。Web 服务器具有中间件、信号和可插入路由。

缺 点:根据 RFC 7231 aiohttp 2.0 版本后做了接受 HEAD 请求的调整,使用之前版本并且用 add_ get () 添加的请

求,如果使用 HEAD 方法访问会返回 405。如果处理器会写入很多响应体内容,你可以在执行 HEAD 方法时跳过处理响应体内容以提高执行效率。

810c1a3fe589136c3ffc33e02c48fce0.png

25. Masonite 框架

官 网:

https://docs.masoniteproject.com/

优 点:现代和以开发人员为中心的 Python Web 框架致力于实现实际的 batteries,包括具有许多开箱即用功能的开发人员工具,具有极其可扩展的架构。Masonite 非常适合初学者开发人员进入他们的第一个 Web 应用程序,以及需要充分利用 Masonite 的全部潜力来完成他们的应用程序的经验丰富的开发人员。Masonite 努力实现从安装到部署的快速简便,因此开发人员可以尽可能快速有效地从概念到创建。将其用于您的下一个 SaaS!尝试一次,你就会坠入爱河。

缺 点:对于 Masonite 来说,最大的” 竞争对手” 是 Django, 因为社区正在竭尽全力将框架推向容易,令人愉悦的下一件大事。与 Django 相比,Masonite 仍然是婴儿,期待它未来的表现。

ccc65699d834e3091e0918a83797c428.png

26. Quart 框架

官 网:

https://pgjones.gitlab.io/quart/

优 点:Quart 是一个 Python 网络微框架。使用 Quart,您可以呈现和提供 HTML 模板,编写(RESTful)JSON API,服务 WebSockets,流请求和响应数据,几乎可以通过 HTTP 或 WebSocket 协议做任何事情。

缺 点:它仅支持 Python 3.7+。

5e2b0bc83339da2f9c1add69e04e1f6a.png

27. Tonberry 框架

官 网:

https://github.com/Ayehavgunne/Tonberry

优 点:一个符合 ASGI 的 Web 微框架,采用基于类的路由方法。受 CherryPy 的影响但与 asyncio 兼容。一个名为 Qactuar 的配套 ASGI 服务器是从这个目前正在进行的项目中产生的。

缺 点:在使用拉取请求,请使用自动格式化程序 iSort 和 Black 并使用 MyPy 验证代码。这是在不消除某些类型错误的情况下,并不总是可以使 MyPy 完全满意,但是至少尽你所能并谨慎使用注释 `# type: ignore`。最后,尝试,尽可能提供最准确的类型提示。

f34d6b4d9960d354b52118a53c9d68e6.png

28. cyclone 框架

官 网:

https://cyclone.io/

优 点:Cyclone 是 Python 的 Web 服务器框架,它将 Tornado API 实现为 Twisted 协议。Twisted 是一个事件驱动的 Python 网络编程框架。它是最成熟的非阻塞 I/O 库之一,可供公众使用。Tornado 是 FriendFeed 网络服务器的开源版本,它是最流行和最快速的 Python 网络服务器之一,具有用于构建网络应用程序的非常不错的 API。除了丰富的功能集之外,Cyclone 还解决了 C10K 问题。

缺 点:Cyclone 不再支持 python 2.x 。

29. Klein 框架

官 网:

https://github.com/twisted/klein

优 点:Klein 是一个微框架,用于使用 Python 开发可用于生产的 Web 服务。它是 “微” 的,因为它具有类似于 Bottle 和 Flask 的非常小的 API。它不是 “微”,因为它依赖于标准库之外的东西。这主要是因为它建立在广泛使用和经过良好测试的组件上,如 Werkzeug 和 Twisted。

缺 点:也许有点过时了。

f372a1019f88579028488439f937c8e3.png

30. nameko 框架

官 网:

https://github.com/nameko/nameko

优 点:AMQP RPC 和事件(发布 - 订阅),HTTPGET、POST 和 websockets,CLI 实现简单快速的开发,用于单元和集成测试的实用程序。

缺 点:nameko 微服务出错不会自动打印错误日志,需要加上监控相关的依赖,计算密集型任务导致任务重试。

9e2ffc5601950c15d7faf9f68dfde657.png

31. CubicWeb 框架

官 网:

https://www.cubicweb.org/

优 点:CubicWeb 是一种语义 Web 应用程序框架,在 LGPL 下获得许可,它使开发人员能够通过重用组件(称为立方体)并遵循众所周知的面向对象设计原则来有效地构建 Web 应用程序。满足常见需求的可重用组件(数据模型和视图)库,Python 编程语言的强大功能和灵活性,用于存储后端的 SQL 数据库、LDAP 目录、Subversion 和 Mercurial 的可靠性。

缺 点:要在 CubicWeb 应用程序中获取或操作持久数据,可以使用关系查询语言(RQL),RQL 提供了一种高度分离的路径来相互关联各种数据源。但是,随着它的实现,通过手动构建查询作为字符串,它可能会让习惯于 ORM 的开发人员感到过时。使用 CubicWeb 还有其他障碍。首先,设置可能很麻烦。另一个潜在的问题是缺少本机模板引擎;生成 HTML 留给开发人员。CubicWeb 支持 Python 3,但 Twisted 等模块本身并未完全移植。

f1f4fc1f1d163a76cffa8e96e5d1c85b.png

32. Zope2 框架

官 网:

https://zope.readthedocs.io/en/latest/

优 点:Zope 2 是一款基于 Python 的 Web 应用框架,是所有 Python Web 应用程序、工具的鼻祖,是 Python 家族一个强有力的分支。Zope 2 的 “对象发布” 系统非常适合面向对象开发方法,并且可以减轻开发者的学习曲线,还可以帮助你发现应用程序里一些不好的功能。

缺 点:Zope 不适用于简单的 RESTful API(每 Bottle 或 Flask),甚至不适用于具有交互性的基本网站(à la Django),由于 Zope 的尺寸和复杂性,安装需要一些工作;这不是简单地将源解压缩到项目子文件夹中的问题。

33. Web2py 框架

官 网:

http://web2py.com/

优 点:Web2py 是一个用 Python 语言编写的免费的开源 Web 框架,旨在敏捷快速的开发 Web 应用,具有快速、可扩展、安全以及可移植的数据库驱动的应用,遵循 LGPLv3 开源协议。Web2py 提供一站式的解决方案,整个开发过程都可以在浏览器上进行,提供了 Web 版的在线开发,HTML 模版编写,静态文件的上传,数据库的编写的功能。其它的还有日志功能,以及一个自动化的 admin 接口。

缺 点:Web2py 的一个重要限制是它仅与 Python 2.x 兼容。首先,这意味着 Web2py 无法使用 Python 3 的异步语法。如果你依赖于 Python 3 独有的外部库,那么你就不走运了。但是,正在开展使 Web2py Python 3 兼容的工作,并且在撰写本文时它已接近完成

e640c640272caa87cbdec32ed434819d.png

34. Pylons 框架

官 网:

https://docs.pylonsproject.org/projects/pylons-webframework/en/latest/

优 点:Pylons 是一个开放源代码的 Web 应用框架,使用 python 语言编写。它对 WSGI 标准进行了扩展应用,提升了重用性且将功能分割到独立的模块中。Pylons 是最新的 Web 应用框架中的典型,类似于 Django 和 TurboGears。Pylons 受 Ruby on Rails 影响很深:它的两个组件,Routes 和 WebHelpers 是 Rails 特性的 Python 实现。

缺 点:Pylons 已与 repoze.bfg 合并,现在处于仅维护模式。强烈建议新项目从新合并的 Web 框架金字塔开始。

e25edeaead42763f1a2bbf6f1b54b25a.png

35. Cubes 框架

官 网:

https://pythonhosted.org/cubes/

优 点:Cubes 是一个轻量级的 Python 框架和工具集,用于开发报告和分析应用程序、在线分析处理 (OLAP)、多维分析和浏览聚合数据。它是 Data Brewery 的一部分。

缺点:不再为每个多维数据集提供隐式聚合 record_count。它必须明确定义为聚合:旧的后端架构是有限制的。它只允许使用一个商店,必须在服务器启动之前知道模型,不可能从远程来源获取模型。

36. Dpark 框架

官 网:

https://github.com/Liangchengdeye/Dpark

优 点:DPark 是 Spark 的 Python 克隆版本,是一个 Python 实现的分布式计算框架,可以非常方便地实现大规模数据处理和低延时的迭代计算。该计算框架类似于 MapReduce,但是比其更灵活,可以用 Python 非常方便地进行分布式计算,并且提供了更多的功能,以便更好地进行迭代式计算。DPark 由国内的豆瓣公司开发实现和负责维护,据豆瓣公司的描述,目前豆瓣公司内部的绝大多数数据分析都使用 DPark 完成,整个项目也正趋于完善。

缺 点:Dpark 使用的是进程,在 Python 中,由于 GIL (Global Interpreter Lock) 的存在,即使在多核机器上使用多个线程,这些线程之间也没有办法真正地实现并发执行。

37. Buildbot 框架

官 网:

https://buildbot.python.org/all/#/

优 点:Buildbot 是 python 实现的开源持续构建和持续交付工具,为 Python, Mozilla, Chromium, WebKit 等知名项目使用。Buildbot 可以直接使用 python 包,轻松拥有上万库,具备强大的扩展能力。如果你觉得 Jenkins 已经轻松地满足你的需求,你不需要 Buildbot。如果你在 Jenkins 时觉得效率低下、扩展困难、一些用 python 等脚本可以实现的动作在 Jenkins 困难重重,那么可以看看 Buildbot。

缺 点:buildbot 对多项目支持并不好。

39e37f9506db4e9a95c6e0704865a49d.png

万水千山总是情,点个 👍 行不行。

***

- EOF -

推荐阅读  点击标题可跳转

1、VS Code 变身小霸王游戏机!

2、认知升级:模型与范式转换

3、超赞的 Python 编译器,单核提速100倍

4、高效的终极秘诀

5、Python 3.12 版本有什么变化?


                                           分享、在看、点赞,3连d10c04af399b1177db9bf941daaa57af.gif

PythonWeb开发项目完整案例(详细教程) PythonWeb开发是使用Python语言进行Web应用程序开发的过程。Python是一种简洁、易读且功能强大的编程语言,因此在Web开发领域广受欢迎。 阅读详情

相关推荐

Web开发常用的框架有哪些?

作者:禅与计算机程序设计艺术 1.简介 Web开发是一个综合性非常强的技术领域,涵盖了网站建设、网站运营管理、互联网应用设计、网络安全、数据分析处理等众多领域,而Web开发框架也随着发展呈现出越来越多样化的形态。因此,了解Web开发框架及其之间的差异和联系非常重要,从而更好地选择适合自己的开发框架。本文

AI天才研究院 2890

最全整理!37 个 Python Web 开发框架总结!

大家好,用了 2 周的时间整理了 Python 中所有的网站开发库(下文简称:Web 框架),供大家学习参考。Q:Web 框架到底是什么?A:Web 框架主要用于网站开发。开发者在基于 Web 框架实现自己的业务逻辑。Web 框架实现了很多功能,为实现业务逻辑提供了一套通用方法。Q:Web 框架有什么作用?A:使用 Web 框架,很多的业务逻辑外的功能不需要自己再去完善,而是使用框架已有的功能就可以。Web 框架使得在进行 网站开发的时候,减少了工作量。Q:我们为什么要使用 Web 框架?

m0_59596937的博客 2万+

单细胞monocle3分析流程再整理

定义root cell, 推断拟时方向# 结合先验知识自定(示例数据)# 可视化示例数据,起点是随便点的。

zfyyzhys的博客 2101

如何用Python写一个Web应用?

首先,要在网络上进行通信,就需要有相关网络协议,例如TCP/IP,UDP……等等。 当然你可以说我直接选用一个框架作为开始,不想了解这么多东西。那样也没问题,不过到一定的时间,相信你还是会愿意回过头来看一看这些基础知识的。 提到网络编程,你一定见过Socket,翻译过来是套接字。这个是啥,相信你也和我一样在初见到它的时候一头雾水,我觉得是翻译的不好,引用一段我觉得还算不错的解释: Socket是网络编程的一个抽象概念。通常我们用一个Socket表示“打开了一个网络链接”,而打开一个Socket需要知道

qingboxueyuan的博客 5551

哈工大2024春大数据挖掘期末考试回忆版试题

(3)现有一个用户数量远多于物品(还是物品远多于用户,忘了是哪个了)的情景,应该使用基于user-user的推荐系统还是item-itmen的推荐系统,说明原因。(1)L是n*n拉普拉斯矩阵,x是一个n*1列向量,证明对任意的x,(x)^TLx>=0(6分)(3)证明:p到o的K-可达距离,至少是o的K-distance(2分)(2)(1)的结果说明竞争率的上界是多少?(2)考Gain的意义,如何利用Gain选择划分点(2分)(2)说明如何利用划分后的数据进行验证(2分)(2)k可达距离是对称的吗?

ymd2002的博客 1891

ESP32开发环境与微信小程序通信的完整示例

通过搭建稳定的esp32开发环境,实现其与微信小程序间的双向通信,涵盖Wi-Fi连接、数据收发与协议设计,为物联网应用提供低成本解决方案。

weixin_42126677的博客 1132

最全整理!37 个 Python Web 开发框架总结

Python 提供了丰富的 Web 开发框架,可以满足从小型 API 开发到复杂企业级系统的各种需求。根据项目的复杂度、性能需求和开发人员的经验,选择合适的框架可以帮助提高开发效率并确保项目成功。🎉。

2301_80346402的博客 6906

传统(经典)粒子群算法(PSO)解决单目标优化问题

智能算法:粒子群算法(particle swarm optimizer)—PSO %原理:(1)种群初始化–N(种群数)–D(个体数)–x(i)(粒子位置)–v(i)(粒子速度) % (2)计算每个粒子的适应度值–而适应度值需要选择适应度函数 % (3)对于每个粒子,使用它的适应度值fit[i]和个体的极值pbest(i)进行比较,如果fit[i]>pbest(i),则pbest(i)=fit[i] % (4)同理,对每个粒子用它的适应值与全局极值进行比较,如果比它大,则

weixin_51631044的博客 1295

Python的13款Web框架对比(比较全!建议收藏!)

Django适合功能全面的企业级项目和需要快速迭代的产品。Flask是一个非常适合小型项目或微服务的灵活选择。FastAPI是性能最好的框架之一,尤其适用于构建高性能 API 服务。Tornado专注于实时应用和高并发场景,特别适合长连接应用。Bottle是非常轻量的框架,适合小型、简单的 Web 应用。Pyramid介于 Django 和 Flask 之间,既有足够的灵活性又有很好的扩展性。Sanic和AIOHTTP。

编程开发知识分享 1万+

4.6 知识库使用指南:如何让AI Agent拥有专业知识

本文介绍了如何为AI Agent构建和使用知识库。知识库的作用是为Agent提供专业知识,包含文档、数据和规则,可用于专业问答和知识检索。使用方法包括创建知识库(上传文档)、向量化处理、知识检索以及在Agent中的应用。核心要点是理解知识库的价值和使用流程。文章还提出了构建方法、检索优化和应用实践等思考题,建议准备高质量数据、优化检索效果并持续更新知识库。下节将介绍用LangGraph构建复杂AI应用。

yonggeit的博客 3011

js逆向实战:爬取淘宝男装商品

本文介绍了一个淘宝商品数据爬取程序的技术实现方案。该程序通过分析淘宝H5页面接口,实现了商品名称、价格、销量等关键信息的抓取,并支持图片下载功能。核心内容包括:1. 使用Request库发送HTTP请求获取数据;2. 通过逆向分析淘宝的签名算法(MD5加密)生成合法请求;3. 解析JSON数据并提取商品信息;4. 处理分页参数实现多页数据爬取;5. 将数据保存为CSV文件并下载商品图片。程序还实现了反爬虫绕过、错误处理、文件管理等辅助功能,完整展示了从数据采集到存储的全过程。

那些看似不起波澜的日复一日,会在某天让你看到坚持的意义 1573

Web框架介绍

Web服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序。

Python全栈系列 6512

六、Tool 工具系统:让大模型拥有“手脚“

我问你一个问题:大模型能不能告诉你"北京今天天气怎么样"?能——它能用非常流畅的中文回答你不能——它不知道这个答案因为它没有联网能力,也没有实时数据。它可能会自信地编一个"今天晴,25 度"给你——这就是幻觉。问题出在哪?大模型是一个"推理引擎",不是一个"执行引擎"。它知道天气 API 怎么调用,但不能真的发出 HTTP 请求。它知道 Python 代码怎么写,但不能真的运行代码。它知道数学公式,但做不了精确的大数计算。Tool 工具系统解决的,就是这个"最后一公里"问题。

牛肉胡辣汤 159

【最全整理】37 个 Python Web 开发框架总结

用了 2 周的时间整理了 Python 中所有的网站开发库(下文简称:Web 框架),供大家学习参考。Q:Web 框架到底是什么?A:Web 框架主要用于网站开发。开发者在基于 Web 框架实现自己的业务逻辑。Web 框架实现了很多功能,为实现业务逻辑提供了一套通用方法。Q:Web 框架有什么作用?A:使用 Web 框架,很多的业务逻辑外的功能不需要自己再去完善,而是使用框架已有的功能就可以。Web 框架使得在进行 网站开发的时候,减少了工作量。Q:我们为什么要使用 Web 框架?A:Web 框架主要用于网

sixqingfeng的博客 1万+

07 Zabbix 微信告警

Zabbix 微信告警 1.注册企业微信 企业微信注册地址:https://work.weixin.qq.com 2.进入企业微信后台管理 2.1 添加微信成员 2.2创建应用 2.3 获取四项数据 (1)AgentID (2) Secret (3) 企业ID (4)部门ID 3.Zabbix Server配置 3.1确认脚本目录 # grep alertscripts /etc/zabbix/zabbix_server....

Jian Sun_的博客 1297

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Web开发架构--常见web后端框架介绍(python、java)

Web开发流程需求分析:明确项目目标和功能需求。设计架构:选择技术栈,设计数据库和API。前端开发:实现UI界面和交互逻辑。后端开发:处理业务逻辑和数据存储。测试与调试:确保功能正确性和性能优化。部署上线:将应用发布到服务器或云平台。运维与维护:监控系统运行,修复问题并迭代更新。前端:HTML、CSS、JavaScript。后端:Web服务器、框架、数据库、ORM。网络协议:HTTP/HTTPS、WebSocket。工具与运维:Git、Docker、云服务。Web框架。

qq_52852649的博客 1万+

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

最全的100个Python精选库,建议收藏!

Python为啥这么火,这么多人学,就是因为简单好学,功能强大,整个社区非常活跃,资料很多。而且这语言涉及了方方面面,比如自动化测试,运维,爬虫,数据分析,机器学习,金融领域,后端开发,云计算,游戏开发都有涉及。万丈高楼平地起,Python这座大厦能够如此强大,就是拥有强大的成千上万的库的支持,无数牛x的轮子在支持这座大厦,今天我们来一起梳理一下,俯瞰整个Python宝库。我大概列了一下整个Python库的应用的方法面面,粗略算算就有20几个方向。左右两边分两个方向,左边负责进攻(主外),每一项单独拉出来都

SixStar_FL的博客 6087

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

【Python Web】30个Python Web开发框架介绍

收藏:30个Python Web开发框架介绍1. Bobo2. Bottle3. CherryPy4. Cyclone5. Flask6. Itty-Bitty7. Klein8. Morepath9. ObjectWeb10. Pecan11. Pyramid12. Tornado13. web.py14. Wheezy Web15. Falcon16. web2py17. Quixote18. API Star19. Twisted20. Sanic21. Japronto22. TurboGears2

小哲的博客 6506

Python几种主流框架,知道三种你就是大神,干货建议收藏

从GitHub中整理出的15个最受欢迎的Python开源框架。这些框架包括事件I/O,OLAP,Web开发,高性能网络通信,测试,爬虫等。 Django: Python Web应用开发框架 Django 应该是最出名的Python框架,GAE甚至Erlang都有框架受它影响。Django是走大而全的方向,它最出名的是其全自动化的管理后台:只需要使用起ORM,做简单的对象定义,它就能自动生成数据库结构、以及全功能的管理后台。 Diesel:基于Greenlet的事件I/O框架 Diesel..

weixin_48726357的博客 4578

python中的web框架介绍

1: DjangoDjango是一个高级Python Web框架,它鼓励快速开发和干净的设计。Django的主要特点是其强大的ORM(对象关系映射),它使得数据库操作更加简单和一致。Django还提供了许多内置的功能,如认证、URL路由、模板引擎等。2:FlaskFlask是一个轻量级的Web框架,它提供了基本的工具和扩展,使你能够构建Web应用程序。Flask的主要特点是其简单性和灵活性,它允许你选择适合你的工具和库。Flask非常适合小型到中型的应用程序。3:Pyramid。

qinshi501的博客 1412

python web开发框架对比,python的web框架有哪些

大家好,小编来为大家解答以下问题,python web框架主要的三大基本框架,python web开发框架对比,现在让我们一起来看看吧!Source code download: 本文相关源码大家好,小编来为大家解答以下问题,python web开发框架有哪些,python web开发框架对比,现在让我们一起来看看吧!Bobo是一个轻量级的框架,用来创建WSGI web应用。它的目标是简单易用,容易记忆python爱心代码英文python自动化运维应用。它强调两个方面的内容:注意:Bobo并不具备模板语言、

pingf123的博客 957

python web开发框架有哪些,python web开发框架 简单

大家好,给大家分享一下python web开发框架第三方库有哪些,很多人还不知道这一点。下面详细解释一下。现在让我们来看看!Bobo是一个轻量级的框架,用来创建WSGI web应用。它的目标是简单易用,容易记忆python皮卡丘代码复制粘贴。它强调两个方面的内容:注意:Bobo并不具备模板语言、数据库集成层或是其他一些WSGI中间件或特定应用程序库所提供的功能。Bobo建立在其他框架之上,尤其是WSGI和WebOb。 官方教程主页为:Introduction — bobo 2.2.0 documentati

2301_81895949的博客 1262

最全Python库资源都给大家整理好了,建议收藏!

最全Python库资源都给大家整理好了,建议收藏!

python03012的博客 1655

Python库大全,建议收藏留用!

1.urllib -网络库(stdlib)。2.requests -网络库。3.grab – 网络库(基于pycurl)。4.pycurl – 网络库(绑定libcurl)。5.urllib3 – Python HTTP库,安全连接池、支持文件post、可用性高。6.httplib2 – 网络库。7.RoboBrowser – 一个简单的、极具Python风格的Python库,无需独立的浏览器即可浏览网页。8.MechanicalSoup -一个与网站自动交互Python库。

2401_87368642的博客 2409
上一篇: 编程能力提升路线图,这本书技术人都应该读一下
下一篇: 性能远超 pandas,又一款数据处理神器
codingpy
博客等级 码龄11年 1870粉丝 104原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值