在本教程中,我们将讨论Python的各种重要框架以及它们的基本特点。众所周知,Python是一门需求量很大且有效的编程语言,它包含了几乎适用于几乎每个技术领域的广泛库和框架。

168-1.png

这些框架可以让开发人员在开发应用程序(或软件)时更加轻松。它们提供了冗余任务的自动实现,减少了开发时间,并将重点显著放在应用程序逻辑上,而不是常见元素上。

Python拥有许多框架,每个框架都有其优点和缺点。

我们只需要分析项目需求,选择合适的框架。

我们将讨论以下Python框架。

  • Bottle
  • CherryPy
  • AIOHTTP
  • Dash
  • Falcon
  • Flask
  • Giotto
  • Django
  • Growler
  • Uvloop
  • Sanic
  • MorePath
  • Picnic
  • Pylons Framework
  • Pyramid
  • TurboGears
  • Web2py
  • Hug
  • CubicWeb

主要有三种类型的Python框架,全栈、微框架和异步。在详细解释每个框架之前,让我们简要介绍各种Python框架。

Python框架的类型

主要有三种类型的框架,如下所示。

1. 全栈框架

这些框架具有诸如表单生成器、表单验证和模板布局等所有Web开发要求。这些是典型全栈框架的核心特性。

2. 微框架

微框架需要大量手动编写代码和额外的要求。这种类型的框架不提供数据抽象层的功能、表单验证以及特定的工具和库。

3. 异步框架

异步框架最近变得越来越受欢迎,允许处理大量并发连接。它使用asyncio库来并发运行进程。

让我们看看以下Python框架。

最佳Python框架

以下是顶级Python框架的列表。

1. Bottle

168-2.jpg

它是一个微框架,为每个使用它开发的应用程序创建一个单一的文件源。这个框架主要侧重于开发API,并且是最好的Python Web框架之一。Bottle不需要其他依赖项来创建小型Web应用程序。它允许开发人员与硬件紧密合作,是创建小型应用程序和简单个人使用应用程序的最适合的框架。

Bottle的关键特点

  • 它是内置的HTTP服务器。
  • 它具有对不同数据库的插件支持。
  • 它提供了请求分发路由。
  • 我们可以访问第三方模板引擎和WSGI/HTTP服务器。

2. CherryPy

168-3.png

CherryPy是一个开源的、面向对象的微框架。它采用了极简主义的方法。这是2002年推出的最古老的Python框架之一。我们不需要安装Apache服务器来运行CherryPy。这个框架允许我们使用任何技术进行数据访问、模板化等操作。

CherryPy的关键特点

  • CherryPy应用程序可以在Android上运行。
  • 它具有灵活的内置系统。
  • 它提供了强大的配置系统。
  • 它提供了内置的覆盖率、分析和测试支持。
  • 同时运行多个HTTP服务器的简单性。

3. AIOHTTP

168-4.png

这是一个依赖于Python 3.5+功能(如async和await)的异步框架。Python asyncio库在该框架的运行中发挥着关键作用。作为服务器Web框架,AIOHTTP也可以用作客户端框架。我们可以使用请求对象和路由器重定向查询。

AIOHTTP的关键特点

  • 它具有可插拔的路由。
  • 它提供了有效构建视图的功能。
  • 信号。
  • 它支持服务器WebSockets和客户端WebSockets,无需回调地处理。
  • 它提供了中间件支持。

4. Dash

168-5.png

Dash是一个基于Python的微框架,用于开发分析型Web应用程序,在数据科学家中非常流行。它适用于那些不太擅长Web开发机制的数据科学家。Dash的应用程序还可以运行像Flask一样的Web服务器,并通过HTTP请求与JSON数据包进行通信。

渲染前端使用的是ReactJS。我们可以使用Flask插件扩展Dash的功能。使用Dash开发的应用程序在Web浏览器中呈现,并可以部署到服务器上。这些应用程序跨平台且可在移动设备上使用。让我们看看Dash框架的主要特点。

Dash的关键特点

  • 支持广泛的插件。
  • 基于URL的例程(Dash开发服务器)。
  • 支持高度定制。
  • 能够有效处理错误。
  • LDAP集成(Dash开发服务器)。
  • 创建Dash应用程序所需的代码较少。

5. Falcon

168-6.jpg

这是一个微框架,用于构建Web API,是另一个广泛使用的Python框架。构建HTTP API需要许多依赖项,并允许开发人员创建一个允许HTTP和REST架构的干净设计。

Falcon广泛用于LinkedIn、OpenStack和RackSpace等大型组织。它可以在相同硬件上处理更多的请求,比所有其他竞争对手都更快。该框架专注于具有100%代码覆盖率。

Falcon的关键特点

  • 前期异常处理
  • 通过Cython支持提供额外的速度。
  • 具有高度优化的代码库,并且可扩展。
  • 通过WSGI辅助和模拟进行单元测试。
  • 其请求和响应类可轻松访问头和主体。
  • 本机HTTP错误响应。

6. Flask

168-7.png

Flask是另一个流行的Python微框架,它采用BSD许可证。它的灵感来自Sinatra Ruby框架。该框架需要Jinja2模板和Werzeug WSGI工具包。

它轻巧且具有模块化设计。Flask易于适应。

使用Flask,开发人员可以从基础开始构建坚实的Web应用程序,然后可以使用所需的任何扩展。它还与Google App Engine兼容。

Flask的关键特点

  • 提供内置支持。
  • 支持jinja2模板。
  • 基于Unicode。
  • HTTP请求处理。
  • 具有内置的快速调试器。
  • 支持插入任何ORM。
  • 支持安全的cookie以建立客户端会话。

7. Giotto

它是一个基于模型视图控制器(MVC)的全栈框架。Giotto是一个应用程序框架,按顺序分离了模型、视图和控制器元素。它提供了一些基本特性,如自动URL路由和带有API和可访问的RESTful接口的Jinja2 HTML模板。

它还附带了控制器模块,为开发人员提供了使用命令行和Internet中继图表(IRC)创建应用程序的平台。

Giotto的关键特点

  • 具有自动URL路由的功能。
  • 功能crud模式。
  • 多个可插拔控制器。
  • 通用模型和视图。
  • Jinja2用于HTML模板的可用性。
  • 极简的代码。
  • 带有SQLAlchemy的数据库支持。

8. Django

168-8.png

Django是一个全栈Python框架。它是一个用于开发丰富Web应用程序的最著名和受欢迎的框架。它正变得越来越受欢迎。它最终成为了2021年最受欢迎的前10个Web开发框架之一。它侧重于DRY(不要重复自己)原则。

Django提供了多个内置库和优秀的功能,可供免费使用。Django使用其ORM将对象映射到数据库表。

它提供了数据库支持,并提供了从一个数据库迁移到另一个数据库的便利性。但是,它具有内置的MySQL、PostgreSQL、SQLite和Oracle数据库支持。我们还可以使用第三方驱动程序来使用其他数据库。

Django的关键特点

  • 与其他Web框架相比,它更加安全。
  • URL路由。
  • 模板引擎。
  • 数据库架构迁移。
  • 身份验证支持。
  • 具有ORM(对象关系模型)。
  • 大量可供使用的库。

9. Growler

168-9.png

这是一个基于异步的框架,建立在asyncio之上;它受到了Node JS和Express/Connect框架的启发。在这个框架中,请求不是由框架本身处理的,而是通过中间件技术来处理的。它是实现复杂应用程序的最合适的框架。

Growler的关键特点

  • 支持众多的开源包。
  • 使用装饰器编写干净、可重用的代码。
  • 使用装饰器减少代码复杂性,可以编写可重用的代码。
  • 有一个允许将整个应用程序打包成单个可执行文件的ziapp模块

10. Uvloop

它被认为是所有Python异步框架中最快的Python Web框架之一,我们不能忽视这一事实。它被认为是asyncio事件循环的替代品;因此,它可以在基于asyncio的应用程序中使用,或者在现有应用程序中替换asyncio。一些开发人员声称Uvloop的速度是Node JS、事件和任何Python异步框架的两倍。

Uvloop的关键特点

  • 非常快的速度
  • 替代asyncio事件循环。

11. Sanic

168-10.jpg

Sanic是建立在上层的Web框架。通过异步请求处理,它提供了快速的HTTP响应。它具有提高速度的非阻塞能力。此外,它支持请求处理程序,并将其与Python 3.5 await/async函数进行比较。

Sanic的关键特点

  • 基于类的视图。
  • 插件支持
  • 能够读取和编写Cookie。
  • 允许各种类型的日志,如错误日志和访问日志。
  • 具有易于应用的处理程序以及易于应用的装饰器支持。

12. MorePath

168-11.jpg

MorePath是一个Python WSGI框架,主要专注于执行更多的用例。此外,它还负责Answer Set Application Programming (ASAP)。它还包括一个标准的Python数据结构,引入到了RESTful Web服务中。

它提供了一个出色的功能,可以自动将框架中定义的路径转换为创建具有最干净URL的应用程序的链接。

MorePath的关键特点

  • 提供了简单、灵活和强大的权限。
  • 创建通用用户界面就像子类一样简单。
  • 所有视图都是通用的,在视图中重用视图。
  • 提供了开发RESTful Web服务所需的所有必要工具。
  • 通过简单、一致和通用的扩展和覆盖机制可扩展。

13. Picnic

它是一个面向对象的微框架,用于开发基于JSON的API。该框架针对基于JSON的API进行了优化,因此它可以跻身最佳Python框架之一,因为它创建了最快的Web API。

Picnic的关键特点

  • 提供对Cookie的支持。
  • 处理路由。
  • 具有内置的错误处理。
  • 能够处理基于JSON的请求。

14. Pylons Framework

168-12.png

这是一个全栈Web框架,它具有精益且模块化的结构。它是一个快速、模块化的Web框架,为大型项目开发提供了最大的灵活性。

Pylons Framework的关键特点

  • 可以创建可重用的Python插件
  • 自带了Python 2.7和Python 3.5的支持。
  • 使用负载均衡来提高性能。
  • 提供了一个测试的功能,用于Web框架。
  • 能够很好地整合数据库。

15. Pyramid

168-13.jpg

Pyramid是一个开源的、快速、灵活的Web框架,用于构建Web应用程序。它基于广泛的Python生态系统。使用Pyramid,开发人员可以使用最适合他们需求的工具、库和框架构建应用程序。

Pyramid的关键特点

  • 极简主义设计。
  • 内置多种数据库的支持。
  • 有一个强大的社区支持,可以提供解决方案。
  • 支持一种叫做Chameleon的模板引擎,具有内置的Zope支持。
  • 可以按需添加功能,而不是被迫使用。
  • 允许根据项目需求定制应用程序结构。

16. TurboGears

168-14.png

TurboGears是一个Python Web框架,它采用了最佳实践并提供了一个简单的开发过程。这个框架使用SQLAlchemy作为ORM工具,使用Genshi作为模板引擎,使用ToscaWidgets作为JavaScript和CSS处理器。

TurboGears提供了多种内置工具和库,用于快速开发Web应用程序。它还支持可插拔的插件,允许开发人员根据需要添加功能。

TurboGears的关键特点

  • 使用内置库来提高开发效率。
  • 支持SQLAlchemy和Genshi。
  • 具有强大的模板和视图支持。
  • 支持多种数据库后端。
  • 提供了多种插件,以扩展框架功能。

17. Web2py

168-15.png

Web2py是一个全栈Web框架,被认为是最佳Python框架之一。它的目标是简化Web应用程序开发,并提供了一个完整的解决方案,包括IDE和Web服务。

Web2py具有内置的IDE,可以在浏览器中运行,这使得应用程序的开发和调试更加方便。它还具有用于部署和管理应用程序的工具。

Web2py的关键特点

  • 具有内置的IDE,使开发和调试更加容易。
  • 支持多种数据库后端。
  • 自动化数据验证和安全性。
  • 支持多语言和国际化。
  • 可扩展性。

18. Hug

168-16.png

Hug是一个用于构建快速、可扩展的API的Python Web框架。它的设计目标是简化API开发,并提供高性能。

Hug支持多种输入和输出格式,包括JSON、XML和HTML。它还提供了强大的路由功能,使开发人员能够轻松定义API端点。

Hug的关键特点

  • 极简主义设计。
  • 支持多种输入和输出格式。
  • 强大的路由功能。
  • 高性能。

19. CubicWeb

CubicWeb是一个开源的Web开发框架,用于构建语义Web应用程序。它使用Python来创建数据驱动的Web应用程序,可以轻松访问各种数据源。

CubicWeb支持自定义数据模型和查询语言,使开发人员能够轻松地构建复杂的Web应用程序。

CubicWeb的关键特点

  • 用于构建语义Web应用程序的数据驱动框架。
  • 支持自定义数据模型和查询语言。
  • 完全开源。

这些是一些顶级的Python框架,每个框架都有其自己的优点和适用场景。选择合适的框架取决于项目的要求和开发人员的偏好。希望这个列表能帮助你了解Python框架,并为你的下一个项目选择合适的工具提供一些指导。

标签: Tkinter教程, Tkinter安装, Tkinter库, Tkinter入门, Tkinter学习, Tkinter入门教程, Tkinter, Tkinter进阶, Tkinter指南, Tkinter学习指南, Tkinter进阶教程, Tkinter编程