Python 程序员需要什么才能让他们的生活更轻松?答案是框架。通过自动执行冗余任务,框架缩短了开发时间并使开发人员能够专注于应用程序逻辑而不是常规元素。
哪个Python框架最好?因为它是领先的编程语言之一,所以Python的框架并不稀缺。不同的框架有其自身的优势和问题。因此,需要根据项目要求和开发商偏好进行选择。
常用的Python框架有哪些?Python 框架主要分为三种类型,即全栈式、微框架式和异步式。在继续讨论 2021 年的最佳 Python 框架之前,让我们首先简要了解一下各种类型的 Python 框架。
Python 框架的类型
1. 全栈框架
此类框架是满足所有开发人员需求的一站式解决方案。表单生成器、表单验证和模板布局通常可用于典型的全栈框架。
2. 微框架
这些是不提供附加功能和特性的轻量级框架,例如数据库抽象层、表单验证以及特定工具和库。使用微框架的开发人员需要手动添加大量代码和额外需求。
3. 异步框架
最近越来越流行,任何异步框架都是一个允许处理大量并发连接的微框架。通常,为 Python 构建的异步框架使用编程语言的 asyncio 库。
最佳Python框架合集
1.AIOHTTP
类型 – 异步框架 AIOHTTP 是一个 Python 框架,它严重依赖 Python 3.5+ 的特性,例如 async 和 awaits。Python 框架利用了 Python 的 asyncio 库,因此是一个异步框架。除了作为服务器 Web 框架之外,AIOHTTP 还可以作为客户端框架。它提供了一个请求对象和路由器,可以将查询重定向到为处理相同问题而开发的函数。
主要亮点:-
- 允许有效地构建视图
- 中间件支持
- 可插拔路由
- 信号
- 支持客户端 WebSockets 和服务器 WebSockets,没有回调地狱
2. Bottle
类型 – Microframework Bottle 为使用它开发的每个应用程序创建一个源文件。它是最好的 Python Web 框架之一。 Python 的微框架最初是为构建 API 而开发的。除了 Python 标准库之外,Bottle 没有制作小型 Web 应用程序所需的依赖项。使用 Bottle 的最重要优势之一是它允许开发人员更接近硬件工作。除了构建简单的个人使用应用程序外,Bottle 还非常适合学习 Web 框架的组织和原型设计。
主要亮点:-
- 对 3rd-party 模板引擎和 WSGI/HTTP 服务器的适配器支持
- 允许从 cookie、数据、文件上传和其他与 HTTP 相关的元数据进行简单访问
- 内置 HTTP 服务器
- 对不同数据库的插件支持
- 提供具有 URL 参数支持的请求调度路由
3.CherryPy
类型——微框架 CherryPy 是一种流行的开源、面向对象的 Python 框架,它遵循简约的方法。微框架是最古老的 Python 框架之一,于 2002 年 6 月首次亮相。
任何由 CherryPy 驱动的 Web 应用程序都是一个独立的 Python 应用程序,具有自己的嵌入式多线程 Web 服务器,并且可以在任何支持 Python 的操作系统上运行。这样的应用程序可以部署在普通 Python 应用程序能够运行的任何地方。
不需要 Apache 服务器来运行使用 CherryPy 开发的应用程序。微框架允许开发人员使用任何类型的技术进行数据访问、模板化等。
主要亮点:-
- 许多用于身份验证、缓存、编码、会话、静态内容等的开箱即用工具
- 灵活的内置插件系统
- 符合 HTTP/1.1 的 WSGI 线程池网络服务器
- 对覆盖、分析和测试的内置支持
- 为同时运行多个 HTTP 服务器提供简单性
- 强大的配置系统
- 在安卓上运行
4.CubicWeb
类型 – 全栈框架由 Logilab 开发和策划,CubicWeb 是一个免费使用、语义化、开源、基于 Python 的 Web 框架。基于数据模型,CubicWeb 需要具有相同的定义才能开发功能性应用程序。
与使用单独视图和模型的其他流行 Python 框架不同,CubicWeb 使用了立方体。然后,在数据库、Web 服务器和一些配置文件的帮助下,将多个多维数据集连接在一起以创建实例。
主要亮点:-
- OWL(Web 本体语言)和 RDF(资源描述框架)支持
- 可重用组件
- 安全工作流程
- 使用 RQL(关系查询语言)嵌入简化与数据相关的查询
- 支持多个数据库
5. Dash
类型 – Microframework Dash 是一个基于 Python 的开源框架,用于构建分析 Web 应用程序。对于不太了解 Web 开发机制的数据科学家来说,它是一个理想的 Python 框架。
使用 Dash 设计的应用程序是运行 Flask 并通过 HTTP 请求与 JSON 数据包通信的 Web 服务器。他们的前端使用 ReactJS 呈现组件。Flask 插件可用于扩展 Dash 的功能。
由于 Dash 应用程序在 Web 浏览器中呈现并可部署到服务器,因此它们是跨平台和移动就绪的。Dash 开发人员可以访问底层 Flask 实例及其所有可配置属性。
主要亮点:-
- Dash 应用程序只需很少的样板代码即可开始使用
- 错误处理(Dash 部署服务器)
- 高度定制化
- LDAP 集成(Dash 部署服务器)
- 插件支持
- 用于绑定 UI 控件的简单界面,包括下拉菜单、图形和滑块
- URL 路由(Dash 部署服务器)
6. Django
类型 – 全栈框架 Django 是用于开发 Python 应用程序的最受欢迎的 Web 开发框架之一。事实上,它最终成为2021 年 10 大 Web 开发框架之一。Django框架遵循DRY(Don't REPEAT Yourself)的原则。
常用的Python框架有哪些?与其他框架不同,免费使用和开源的全栈 Python 框架包含大量内置功能,而不是将它们作为单独的库提供。Django 使用其 ORM 将对象映射到数据库表。
这使得代码可以跨不同的数据库工作,并且可以更轻松地从一个数据库迁移到另一个数据库。虽然 Django 固有地支持 MySQL、PostgreSQL、SQLite 和 Oracle 数据库,但它可以通过第三方驱动程序支持其他数据库。
主要亮点:-
- 大量即用型库
- 认证支持
- 数据库模式迁移
- 对象关系映射器 (ORM)
- 支持网络服务器
- 模板引擎
- URL路由
查看使用 Django 框架的优点和缺点。
这里是编程社区推荐的最佳 Django 教程。
7. Falcon
类型 – 微框架 哪个Python框架最好?Falcon 旨在快速构建 Web API,是另一个广泛使用的 Python 框架。与其他需要加载大量依赖项来构建 HTTP API 的 Python 框架不同,Falcon 允许开发人员构建更简洁的设计,以支持 HTTP 和 REST 架构。
最佳Python框架合集:根据 Sanic 进行的基准测试,Falcon 能够使用与所有同时代产品相同的硬件处理大多数请求。Python 框架旨在实现 100% 的代码覆盖率。Falcon 被 LinkedIn、OpenStack 和 RackSpace 等大公司使用。
主要亮点:-
- 一个可扩展的、高度优化的代码库
- 通过中间件组件和钩子处理 DRY 请求
- 通过请求和响应类轻松访问标头和正文
- Cython 支持的额外速度提升
- 惯用的 HTTP 错误响应
- 受 REST 启发的资源类和 URI 模板提供直观的路由
- 通过 WSGI 助手和模拟进行单元测试
- 前期异常处理
8. Flask
类型——微框架在 BSD 许可下可用,Flask 是另一种流行的 Python 框架。受 Sinatra Ruby 框架的启发,微框架需要 Jinja2 模板和 Werkzeug WSGI 工具包。由于其轻量级和模块化设计,Flask 很容易适应。
Flask 允许开发人员构建一个坚实的 Web 应用程序基础,从中可以使用所需的任何类型的扩展。微框架与 Google App Engine 兼容。
主要亮点:-
- 内置快速调试器
- HTTP 请求处理
- 内置开发服务器
- Jinja2 模板
- RESTful 请求分派
- 支持插入任何 ORM
- 支持安全 cookie 以建立客户端会话
- 基于 Unicode
- 单元测试支持
- WSGI 1.0 合规性
想学习 Flask?查看这些最佳 Flask 教程。
9. Giotto
类型 – 全栈框架基于模型视图控制器模式,Giotto 是 Python 的应用程序框架。为了让 Web 设计师、Web 开发人员和系统管理员能够独立工作,Giotto 将 Model、View 和 Controller 元素按顺序分开。
Giotto 包括控制器模块,使用户能够在 Web、IRC(Internet 中继聊天)和命令行之上创建应用程序。
主要亮点:-
- 自动 URL 路由
- 使用 SQLAlchemy 实现数据库持久性
- 极其简洁的代码
- 功能性 CRUD 模式
- 通用模型和视图
- 内置缓存,支持 Memcache 和 Redis(可用 API 扩展对其他引擎的支持)
- Jinja2 用于 HTML 模板(API 可用于支持其他模板引擎)
- 多个可插拔控制器
- 带有普通“浏览器 POST”CRUD 站点的 RESTful 界面
10. Growler
类型 – 异步框架受 常用的Python框架有哪些?NodeJS 和 Express/Connect 框架的启发,Growler 是一个基于 Python 的 asyncio 库编写的微型 Web 框架。
与其他传统 Python 框架不同,Growler 中的请求不是在框架中处理,而是通过中间件技术处理。
作为 Python 框架中轻松快速实现复杂应用程序的首选,Growler 最初由其作者开发,目的是简单地学习如何在最低级别使用 asyncio 库。
主要亮点:-
- 由于缺少必需的回调和正确的 try/except 块,因此易于查看程序流程
- 支持大量开源包
- 使用装饰器编写干净、可重用的代码
- Ziapp 模块允许将整个应用程序压缩为单个可执行文件
额外的 Python 框架
11.Hug
类型——微框架The Hug 旨在允许 Python 开发人员开发一次 API,然后在他们想要的任何地方使用它。Python 框架通过提供多种接口来简化 API 开发。它被标记为 Python 3 最快的 Web 框架。
无论你是进行本地开发还是通过 HTTP 或通过 CLI,Hug 都可以让你快速轻松地完成应用程序开发。为了将性能提升到一个新的水平,Hug 仅在需要时消耗资源并使用 Cython 进行编译。
主要亮点:-
- 注释驱动的验证
- 遵循编写一次,随处使用的理念
- 内置版本管理
- 支持自动文档
12. MorePath
类型 – 微框架被标记为“超级强大的 Python Web 框架”,MorePath 确保最小的设置占用空间。它专为尽快启动和运行大多数典型用例而设计,包括引入 RESTful Web 服务的常见 Python 数据结构。
微框架 MorePath 是一个非常灵活的模型驱动的 Web 框架。Python 框架可用的一个独特功能是它会自动将框架中定义的路径转换为链接,以使用最干净的 URL 创建应用程序。
主要亮点:-
- 所有视图都是通用的。在视图中重用视图
- 附带开发 RESTful Web 服务所需的所有工具
- 创建通用用户界面就像子类化一样简单
- 可通过简单、连贯和通用的扩展和覆盖机制进行扩展
- 灵活、简单、强大的权限
13. Pycnic
类型 – 微框架 最佳Python框架合集:Pycnic 是一个面向对象的微框架,被认为是构建基于 JSON 的 API 的最快方法。小型、独立且针对基于 JSON 的 API 框架进行了优化,能够在大玩家中占据一席之地。因为 Pycnic 只创建 Web API,所以它占用的空间最小,因此速度很快。
主要亮点:-
- 内置错误处理
- 能够处理基于 JSON 的请求
- 处理路由
- 支持cookies
14. Pylons 框架
类型 – 全栈框架 Pylons Framework 是一个基于 Python 的开源框架,专注于应用程序的快速开发。该框架的设计融合了 Perl、Python 和 Ruby 等语言的一些最佳元素和特性。
尽管在维护模式下可用,但仍有一些开发人员使用 Pylons 框架,因为它能够为 Web 开发提供高度灵活的结构。为了提升复用性,全栈框架大量使用了WSGI(Web Server Gateway Interface)。
主要亮点:-
- HTML 表单验证和生成
- 路线
- 基于文本的模板
- URL调度
- 通过 WebHelpers 基于路由配置的 URL 映射
15. Pyramid
类型——全栈框架 Pyramid 是另一个领先的 Python 框架。基于 Python 的开源 Web 开发框架的主要目标是实现尽可能多的最小复杂性。
Pyramid 最令人向往的方面是能够在小型和全面的应用程序中同样出色地工作。此外,还有大量资源可用于根据要求扩展其能力。
主要亮点:-
- 灵活的认证和授权
- 函数装饰器
- 谓词
- 渲染器
- 单文件申请
- 模板和资产规范
- 网址生成
16. Sanic
类型 – 异步框架 哪个Python框架最好?Sanic 构建在 uvloop 之上,是一个简单的开源 Python 框架,专门开发用于通过异步请求处理提供快速 HTTP 响应。因此,它是 Python 的异步框架。
Sanic 支持异步请求处理程序,使其与 Python 3.5 的 async/await 函数兼容。它可以提高速度并提供非阻塞功能。
在一个进程和 100 个连接的基准测试中,Sanic 能够在一秒钟内处理多达 33,342 个请求。
主要亮点:-
- 能够读写cookies
- 允许不同类型的日志记录,例如访问日志和错误日志
- 基于类的视图
- 具有易于应用的装饰器支持的处理程序
- 插件支持
- 支持应用程序内的子路由蓝图
- 可以使用点符号或像字典一样修改配置对象
17. Tornado
类型——异步框架;最佳Python框架合集:Tornado 是一个开源 Python 框架和一个异步网络库。除了解决 C10k 问题(这只是意味着在任何给定时间处理 10k 连接),异步框架使用非阻塞网络 I/O。
Python 框架最初是为一家名为 FriendFeed 的公司开发的,该公司于 2009 年被 Facebook 收购。 Tornado 是构建要求高性能和数千并发用户的应用程序的理想工具。
主要亮点:-
- 允许实施第 3 方身份验证和授权方案
- 提供高质量的输出
- 实时服务
- 支持翻译和本地化
- 用户认证支持
- 网页模板
18.TurboGears
类型 – 全栈 TurboGears 是一个数据驱动的、开源的、全栈的 Python 网络应用程序框架。该框架允许开发人员快速开发可扩展的数据驱动的 Web 应用程序。
除了支持灵活而强大的 ORM 之外,TurboGears 还带有可理解的模板。全栈框架利用 Genshi、Repoze、SQLAlchemy 和 WebOb 等组件轻松快速地开发需要数据库连接的应用程序。
主要亮点:-
- 所有功能都实现为函数装饰器
- 可用的命令行工具
- MochiKit JavaScript 库集成
- 多数据库支持
- MVC风格的架构
- PasteScript 模板
- ToscaWidgets 用于简化前端设计和服务器部署的协调
- 使用 Pylons 作为网络服务器
- 使用 FormEncode 进行验证支持
19. Web2Py
类型——全栈框架 常用的Python框架有哪些?对于寻找可扩展的全栈框架的 Python 开发人员来说,Web2Py 可能是答案。开源 Python 框架带有自己的基于 Web 的 IDE,其中包括代码编辑器、调试器和一键部署。
尽管 Web2Py 允许用户在 Python 中创建动态 Web 内容,但它不提供对 Python 3 的支持。票务系统是 Python 框架最重要的功能之一。每当发生错误时,系统都会向用户发出票证。
主要亮点:-
- 能够在任何支持 Python 或 Java 和 Python 的网络托管平台上运行
- 向后兼容
- 内置数据安全功能,可防止多个常见漏洞,包括跨站点脚本、注入缺陷和恶意文件执行
- 无安装和配置要求
- 遵循MVC模式
- 为国际化提供支持
- 多种协议的可读性
- 基于角色的访问控制
概括
哪个Python框架最好?为了理解上述所有(或大部分)Python 框架,你至少需要具备高级解释性编程语言的中级能力。如果你想学习 Python 或提高你的 Python 专业知识,Python for Everyone Specialization 是 Python 编程社区强烈推荐的课程。
哪些 Python 框架应该或不应该进入列表?你最喜欢哪个 Python 框架?通过评论告诉我们。