Python CherryPy 简介

2025年4月12日 | 阅读 4 分钟

谈到 Python 中的 Web 开发,像 Django 和 Flask 这样的不同框架最常受到关注。然而,如果你急需一个轻量、简单而又强大的工具,请关注 CherryPy。CherryPy 基本上是一个面向对象的 Web 框架工具,它可以像编写任何 Python 代码一样轻松地开发基于 Web 的应用程序。

什么是 CherryPy?

CherryPy 是另一个自 2002 年以来就存在的开源 Python Web 应用程序框架。它使开发人员能够快速、轻松地开发 Web 应用程序和应用,因为该框架处理了许多通常需要手动编写的 HTTP 事务。与许多其他大型框架不同,CherryPy 对应用程序的架构方式没有倾向性,但支持开发人员的自由裁量权。

CherryPy 的主要特点

  1. 轻量级和极简:使用 CherryPy 时,框架中没有集成太多功能,这对于框架的简洁性非常有益。尽管它可能无法达到典型操作系统的程度,但开发人员只需添加他们需要的组件,因此不会捆绑 软件 膨胀。
  2. 内置 Web 服务器:CherryPy 包含一个集成的多线程 Web 服务器,在开发过程中不需要使用 Apache、Nginx 或其他 Web 服务器。
  3. 面向对象设计:CherryPy 应用程序基于 Python 类和方法,因此对于偏爱 Python 的开发人员来说会相当舒适。
  4. WSGI 兼容性:CherryPy 还是一个实现了 WSGI 应用程序编程接口的 Web 框架,它与其他符合 WSGI 的应用程序或中间件具有高度互操作性。
  5. 跨平台支持:它支持的操作系统包括 WindowsMacOSLinux 等。

CherryPy 入门

让我们深入研究一个简单的例子,以了解 CherryPy 的工作原理。在我们开始之前,请确保您已经安装了 CherryPy。您可以通过 pip 安装它

这是一个基本的 CherryPy 应用程序

代码分解

  • 类定义:HelloWorld 类定义了应用程序的结构。
  • @cherrypy.expose:此装饰器使 index 方法可作为 Web 端点访问。
  • quickstart:此函数启动 CherryPy 应用程序及其内置的 Web 服务器。

将此代码保存在一个 Python 文件中,运行它,并在浏览器中访问 http://127.0.0.1:8080。您将看到消息“Hello, CherryPy!”显示。

CherryPy 的优点

  1. 轻量级:最小的开销使其成为小型项目或服务的良好选择。
  2. 内置服务器:包含一个功能强大的多线程 Web 服务器,便于部署。
  3. 灵活性:在应用程序结构方面提供极大的自由。
  4. Pythonic:遵循 Python 的设计理念,使 Python 开发人员直观易用。
  5. 跨平台:在多个操作系统上无缝运行。
  6. 可扩展:允许集成自定义中间件和插件。

CherryPy 的缺点

  1. 有限的生态系统:与 Django 或 Flask 等大型框架相比,社区和插件较少。
  2. 无内置功能:缺少 ORM、身份验证或管理界面等功能,必须手动添加。
  3. 文档较少:资源和教程比更流行的框架少。
  4. 不适合大型项目:对于非常大型或复杂的应用程序可能会变得繁琐。

何时使用 CherryPy?

CherryPy 是一个轻量级的 Python Web 应用程序框架,用于在最短的时间内创建 Web 应用程序。您可以在以下情况下选择 CherryPy:

  1. 轻量级 Web 应用程序:CherryPy 最适合中小型项目,其中构建者不需要像 DjangoFlask 这样的 CherryPy 竞争对手的完整规范栈。对于只涉及基本路由、HTTP 处理和迷你服务器的爱好,CherryPy 是一个不错的选择。
  2. 嵌入式系统或 API:CherryPy 非常适用于需要内置 HTTP 服务器的嵌入式系统或应用程序。这对于 RESTful API 尤为有价值,因为这种设计方法注重简洁性和高性能。
  3. 快速原型开发:如果您需要构建 Web 应用程序原型,那么我们会发现 CherryPy 更容易设置和配置。
  4. 独立应用程序:CherryPy 包含自己的生产就绪 HTTP 服务器,因此它可以服务独立应用程序,而无需依赖 Apache 或 Nginx 等外部 Web 服务器。
  5. 需要多线程的应用程序:CherryPy 支持多线程请求处理,使其成为需要并发处理的应用程序的良好选择。
  6. 扩展现有系统:如果您需要向现有 Python 应用程序添加 Web 界面,CherryPy 由于其轻量级特性,可以轻松集成。
  7. 自定义 Web 框架:CherryPy 通常用作构建自定义 Web 框架或作为其他框架的后端的基础。
  8. 具有特定依赖项的应用程序:CherryPy 独立于大型依赖项,允许开发人员选择和管理自己的模板、数据库等库。
  9. 偏爱简洁而非全栈功能的场景:对于全栈框架会造成过度杀伤的用例,CherryPy 对简洁性和模块化的关注可以减少不必要的开销。
  10. 跨平台兼容性:CherryPy 可以在任何操作系统上运行,因此该框架适用于跨平台开发工作。

结论

然而,该示例的功能远不如 Flask 等一些最受推荐的系统多,但它仍然非常健壮和通用,因为它既简单又灵活。无论您是开发基本网站还是 API,CherryPy 都将为您提供构建应用程序的结构,且几乎没有不必要的复杂性。