花了2周时间整理了所有Python中的网站开发库(以下简称:Web框架),供大家参考。
问:Web 框架到底是什么?
A:Web 框架主要用于网站开发。开发人员基于 Web 框架实现自己的业务逻辑。Web 框架实现了许多功能,并提供了实现业务逻辑的通用方法。
Q:web框架的作用是什么?
A:使用Web框架,很多业务逻辑之外的功能不需要自己改进,但是可以使用框架已有的功能。Web 框架减少了网站开发过程中的工作量。
问:我们为什么要使用 Web 框架?
A:web框架主要用于网站开发,可以实现数据的交互和业务功能的完善。使用web框架进行网站开发时,不需要在数据缓存、数据库访问、数据安全验证等方面重新实现自己,而是将业务逻辑相关的代码写入框架中。
图书馆的排名基于用户数量和文档的活跃度。推荐大家使用排名靠前的框架,因为它们文档更完整,技术积累更多微小程序定制,社区更繁荣,支持更好。当遇到无法自己解决的问题时,可以更快、更高效地找到解决方案。
1. Django 框架
官方网站:
优点:是一个高级Python Web开发框架,特点是开发速度快,代码少,可扩展性强。Django使用MTV(Model、Template、View)模型组织资源,框架功能丰富,模板扩展选项最多。对于专业人士来说,Django 是 Python 无可争议的 #1 Web 开发框架。
缺点:包括一些轻量级应用不需要的功能模块,不如Flask轻量级。过度封装很多类和方法更容易直接使用,但更难改变。与 C 和 C++ 的性能相比,Django 的性能较低。模板实现了代码和样式的完全分离,不允许Python代码出现在模板中,不够灵活。此外,学习曲线相对陡峭。
2. 烧瓶框架
官方网站:
优点:Flask 是一个用于 Python Web 开发的微型框架。严格来说 小程序得多钱 ,它只提供 Web 服务器支持,不提供全栈开发支持。但是,Flask 非常轻量级,非常简单,基于它构建一个 web 系统只需几分钟,特别适合开发小型和微型原型系统。花更少的时间和生产一个可用的系统是一个非常划算的选择。
缺点:对于大型网站开发,需要设计路由映射规则,否则代码会比较杂乱。对于初学者来说,使用低质量的代码很容易创建“糟糕的 Web 应用程序”。
3. 金字塔框架
官方网站:
优点:它是一个高度可扩展和灵活的 Python Web 开发框架。非常容易上手,比较适合边开发边设计的中型场景。Pyramid 没有提供绝对严格的框架定义,可以根据需要进行开发微小程序定制,对高级程序员非常友好。
缺点:国内普及度不高,高级用法需要阅读源码有所启发。默认情况下使用 Chameleon 模板,灵活性不是一个因素。
4. web.py 框架
官方网站:
优点:顾名思义,web.py 是一个使用 Python 作为开发语言的简单而强大的 Web 框架。俄罗斯排名第一的 Yandex 搜索引擎就是基于这个框架,Guido van Rossum 认为它是最好的 Python web 框架,还有什么需要说的?有事实证明和丹尼尔的认可,使用它!
缺点:Web.py 在 Python 3 兼容性方面不如其他框架是最新的。这意味着不仅不支持异步语法 一个小程序大概多少钱 ,而且不推荐使用的函数也没有错误。此外,目前还不清楚维护者是否计划在 Python 2 支持生命周期结束后让 Web.py 保持最新。
5. Tornado 框架
官方网站:
优点: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 支持。
6. TurboGears 框架
官方网站:
优点:最新版TurboGears尝试解决原版TurboGears、Django、Rails等框架的缺陷。它支持多种数据库、JavaScript 工具集、多种数据交换格式等。当然,它的开发效率非常高,可扩展性也很强。它和 Django 哪个更好呢?很难说,可能更重要的是 Django 社区更加活跃。
缺点:TurboGears 的一些缺点包括管理功能比较基础,第三方应用较少微小程序定制,文档很简陋。TurboGears 的一大挑战是它的压倒性。因为它为混合和匹配其他组件提供了无限的灵活性,所以在尝试决定完成任务的路径时过于复杂。
7. CherryPy 框架
官方网站:
优点:CherryPy 使开发人员能够以与其他面向对象程序相同的方式,以最少的代码和最简洁的方式开发 Web 系统。CherryPy 已经开发了 10 年,并且非常稳定,非常适合小型 Web 系统和纯 Python 程序员。你感觉怎么样?蟒蛇有称霸江湖的趋势!等着瞧。
缺点:除了只包含提供网页所需的少量内容外 小程序定制要多少钱 ,它应该尽可能不像“网络框架”,而是像任何其他类型的 Python 应用程序一样。CherryPy 包含用作低级构建块的位。包括会话标识符和 cookie 处理,但不包括 HTML 模板。与 Bottle 一样,CherryPy 提供了一种将路由映射到磁盘上的目录以提供静态文件的方法。
8. 猎鹰框架
官方网站:
优点:Falcon是一个支持大规模微服务API或移动应用后端响应的Web开发框架,完全基于Python,提供了非常高的性能、可靠性和可扩展性。猎鹰具有独特的定位和鲜明的特点。对于App开发者,后端系统建设不妨考虑Falcon。十有八九,你不会后悔的。
缺点:Falcon的缺点是它的封装模块有点太小了,有路由、中间件、钩子,没有其他功能(裸壳)。其他功能(例如验证)需要开发人员开发扩展。因为它旨在用于构建 REST API。
9. Asgineer 框架
官方网站:
优点:Asgineer 是一种使用尽可能少的抽象编写异步 Web 应用程序的工具,同时仍提供友好的 API。在几分钟内阅读指南和参考资料!在 Uvicorn 上运行 Asgineer 时,它是可用的最快的 Web 框架之一。它支持 http 长轮询、服务器端事件 (SSE) 和 websockets。并且有公用事业以正确(和快速)的方式为资产提供服务。
缺点:缺乏中文文档。
10. 瓶子框架
官方网站:
优点:Bottle 是一个快速、简单、轻量级的 Python WSGI 微型 Web 框架。它作为一个单文件模块分发,除了 Python 标准库之外没有其他依赖项。支持干净和动态的 URL。快速且 Pythonic 的内置模板引擎,支持 mako、jinja2 和 cheetah 模板。方便地访问表单数据、文件上传、cookie、标头和其他与 HTTP 相关的元数据。
缺点:Bottle 极简主义的一个后果是某些功能根本不存在。不支持表单验证,包括 CSRF 保护等功能。如果您正在构建支持高级用户交互的 Web 应用程序,则需要自己添加它们。
11. 艾美特框架
官方网站:
优点:编写优雅的代码,专注于你的产品,你应该花更多的时间在你的产品上而不是底层框架。Emmett 是一个发明家的框架,因为它旨在通过易于学习和理解的简单语法来简化您的开发过程。不要在路由器和不舒服的模式之间浪费时间:每次为应用程序写下路由时,一切都会清晰地呈现在您的眼前。
缺点:缺乏中文文档。
12. apidaora 框架
官方网站:
优点:使用类型注释将请求/响应声明为数据类和字典,使用 jsondaora(最快的 python api 框架之一)验证输入数据,适用于任何 asgi 服务器。
缺点:缺乏中文文档。
13. Quixote 框架
官方网站:
优点: Quixote 是一个用 Python 编写基于 Web 的应用程序的框架。其目标是按此顺序实现灵活性和高性能。Quixote 应用程序的结构往往与传统应用程序类似。格式化网页的逻辑由 Python 类和函数组成。Quixote 不强制分离表示逻辑和“后端”逻辑。相反,我们鼓励您使用传统技术。例如,一种解决方案是将表示逻辑放在它自己的子包中。
缺点:虽然 Quixote 得到积极维护,但发布频率较低。最近的发展集中在修复错误、提高标准合规性和增加 Quixote 的灵活性上。
14. 真实帧
官方网站:
优点:reahl 是一个开放框架,允许开发人员完全用 Python 编写 Web 应用程序。使用 Python 作为唯一的开发语言是其最大的特点。此外,reall 提供了相当清晰简洁的开发组件,对于开发通用功能的 Web 系统来说足够清晰和可行。
缺点:提供抽象词汇时无法掌握一些更高级的UI效果,目前不允许使用Sass构建修改版的Bootstrap,支持更高级的UI模式
15. 拥抱框架
官方网站:
优点:Hug 是一个 Python 3 API 开发框架。它的设计目的是让软件工程师可以开发一次 API 小程序定制及 ,然后在需要时使用它。Hug 框架通过提供各种接口来简化 API 开发。这就是为什么该框架被称为 Python 3 中最快的框架之一的主要原因。
缺点:它使用了之前的 WSGI 标准,是一个同步框架,所以它不能处理像 WebSockets 之类的异步请求,但无论如何它仍然有很好的性能。
16. BlackSheep 框架
官方网站:
优点:BlackSheep 是一个异步 Web 框架,用于使用 Python 构建基于事件的 Web 应用程序。它的灵感来自 Flask、ASP.NET Core 和 Yury Selivanov 的工作。
缺点:缺乏中文文档。
17. Index.py 框架
官方网站:
优点:实现 ASGI3 接口,使用 Radix Tree 进行路由查找。是最快的 Python Web 框架之一。所有功能都有助于快速开发高性能 Web 服务。大量正确的类型注解,灵活高效的路由系统,可视化API接口和在线调试,支持Server-sent事件和WebSockets,一键部署命令(基于uvicorn和gunicorn),任何可用的ASGI生态。
缺点:Index.py没有内置数据库、缓存等功能。如果难以选择,请直接使用Django。
18. Sanic 框架
官方网站:
优点:Sanic 是一个 Python 3.7+ 的 Web 服务器和 Web 框架,可以快速编写。它允许使用 Python 3.5 中添加的 async/await 语法,这使您的代码无阻塞且快速。该项目的目标是提供一种简单的方法来启动和运行高性能 HTTP 服务器,该服务器易于构建、扩展和最终扩展。
缺点:Sanic 在功能方面模仿了 Flask,例如通过共享蓝图的概念,微型子应用程序允许开发人员在更大的应用程序中拆分和组织他们的代码。对于只添加、删除、修改和检查数据的 CRUD 应用程序,Sanic 不是一个好的选择。
19. 星框
官方网站:
优点:Starlette 是一个轻量级的 ASGI 框架/工具包,非常适合构建高性能异步服务,它已准备好生产,并为您提供: 令人印象深刻的性能。WwbSocket 支持。GraphQL 支持。正在进行的后台任务。启动和关闭事件。根据请求构建的测试客户端。CORS、GZip、静态文件、流响应。会话和 cookie 支持。100% 的测试覆盖率。100% 类型注释代码库。零硬依赖。
缺点:Starlette 提供了所有基本的 Web 微框架功能。但它不提供自动数据验证、序列化或 API 文档。
20. Fastapi 框架
官方网站:
优点:FastAPI 是一个现代、快速(高性能)的 Web 框架,用于基于标准 Python 类型提示使用 Python 3.6+ 构建 API。非常高的性能,与 NodeJS 和 Go 相当(感谢 Starlette 和 Pydantic)。可用的最快的 Python 框架之一。将人为(开发人员)错误减少约 40%。简短、简单、直观且强大。
缺点:本身没有模板语法,需要安装模板语法
21. 响应者框架
官方网站:
优点:是kennethreitz开发的新项目,是一个基于Python的HTTP服务框架。底层使用 Starlette 框架。Starlette 是一个轻量级的 ASGI 框架/工具包,可以用 Starlette 构建高性能的异步 IO 服务。与 Starlette 相比,响应者对开发者更加友好。Kennethreitz 编写了名为“HTTP for Humans”的请求以使这一点更清楚。事实上,Responder 比 Starlette 优雅得多。
缺点:可能是新项目,包装不完善。在当前版本中,有一点代码不能正常工作。但是接口形式已经定义好了,预计以后的版本会增加。
22.熔火骨架
官方网站:
优点:Molten 是一个最小的、可扩展的、快速且高效的框架,用于使用 Python 构建 HTTP API。安排自动验证请求,代码更容易维护。实例是可自动序列化的,包含 API 在现实世界中通常需要的各种功能,广泛使用 PEP484 类型提示和 mypy。
缺点:它不使用像 3rd 方库(如 Pydantic)来提供数据验证、序列化和文档,它有自己的库。因此,这些数据类型定义不会轻易被重用。依赖注入系统需要预先注册依赖,并根据声明的类型解析依赖。因此,不可能声明多个组件来提供特定类型。
23. 弹性框架
官方网站:
优点:一个强大的 Python Web 框架,它简化了显式的开发实践,同时消除了全局状态。Clastic 完全用 Python 语言编写,增强了可重用性和可测试性,主动 URL 路由检查 定制化小程序的开发费用 ,更好地控制应用程序初始化,改进的中间件范例,无全局状态,ORM 使用,更容易的 WSGI 集成。
缺点:Clastic 不建立全局状态;URL 路由规则参数和视图函数签名不匹配,这在 Clastic 中会在构建应用程序时引发异常。
发现、改变
探知、求新
共享,感恩一路相伴
昱远品牌形象已完成全面升级
点击访问新官网