CherryPy具有强大的体系结构,可帮助您以一种易于维护和更灵活的方式组织代码。
您可以使用几种机制,本教程将重点介绍三个主要机制:
为了理解它们,让我们想象你是一个超级市场:
尽管非常简单,但这与您的应用程序的行为方式相差无几。 CherryPy可以帮助您以反映这些高级想法的方式构建应用程序。
回到超市的例子,很可能你会想要根据不同情况执行操作:
为了支持这些用例,CherryPy提供了一种称为调度程序的机制。在请求处理期间尽早执行调度程序,以确定应用程序的哪一段代码将处理传入的请求。或者,继续商店类比,调度员将决定顾客到哪个收银台。
我们假设您的商店决定进行折扣狂欢活动,但仅限于特定类别的客户。 CherryPy将通过一种称为工具的机制来处理这种用例。
tools 是一段代码,它基于每个请求运行,以执行其他工作。通常,tools 是一个简单的Python函数,它在CherryPy请求过程中的给定点执行。
正如我们所看到的,该商店有一群人致力于管理库存并处理任何客户的期望。
在CherryPy世界中,这转化为具有在任何请求生命周期之外运行的函数。这些函数应该处理后台任务,长期连接(例如对数据库的连接)等。
插件以这种方式调用,因为它们与CherryPy引擎一起工作并随着您的操作扩展它。