2. CherryPyCherryPy(http://www.cherrypy.org/)已经以这样或那样的形式存在了将近20年,但并没有失去它从一开始就与众不同的极简主义和优雅 。

文章插图
CherryPy背后的目标,除了只包含服务web页面所需要的少量内容之外,是尽可能让人感觉不像“web框架”,而是像任何其他类型的Python应用程序 。像Hulu和Netflix这样的网站已经在生产中使用了CherryPy,因为这个框架提供了一个非常包容的构建基础 。CherryPy在底层使用线程池,更好地支持多线程服务器适配器 。
CherryPy可以让您的web应用程序远离核心逻辑 。要将应用程序的函数映射到CherryPy提供的url或路由,需要创建一个类,其中对象的名称空间直接映射到需要提供服务的url 。例如,网站的根目录由一个名为“index”的函数提供 。传递给这些函数的参数用于相应的处理GET或POST方法提供的变量 。
CherryPy包含的比特意味着作为低级构建块工作 。包含了Session标识符和cookie处理,但没有包含HTML模板 。与Bottle一样,CherryPy提供了一种将路由映射到磁盘目录的方法,用于静态文件服务 。
CherryPy通常会遵从现有的第三方库来支持某个特性,而不是本地化(原生)提供它 。例如,WebSocket应用程序不是由CherryPy直接支持的,而是通过ws4py库支持的 。
CherryPy的文档包含一个方便的教程,介绍了该程序的各个方面 。与其他一些框架教程不同,它不会带您了解完整的端到端应用程序,但仍然很有用 。文档中有关于虚拟主机部署、通过Apache和Nginx进行反向代理以及许多其他场景的便签笔记式说明 。
【Python的Web框架介绍】应用示例代码如下:
import cherrypy class HelloWorld(object):@cherrypy.exposedef index(self):return "Hello World!" cherrypy.quickstart(HelloWorld())3. Falcon如果您正在构建基于REST的APIs,那么Falcon(http://falconframework.org/)就是专门为您设计的 。精悍、快速,除了标准库之外几乎没有依赖,Falcon提供了REST api所需的一切,仅此而已 。2019年发布的Falcon2.0废除了对Python 2.x支持,并且至少需要Python 3.5 。

文章插图
Falcon获得“轻薄”(light & slender)标签的很大一部分原因与框架中的代码行数无关 。这是因为Falcon几乎没有将自己的结构强加给应用程序 。Falcon应用程序所要做的就是指出哪些函数映射到哪些API端点 。从端点返回的JSON只涉及设置路由以及经由Python标准库json.dumps函数返回的数据 。对异步的支持还没有在Falcon中实现,但是正在努力在Falcon 3.0中实现 。
Falcon还采用了健全的开箱即用的默认设置,所以安装时不需要什么修改 。例如,对于没有显式声明的任何路由,默认情况下都会引发404s 。如果希望向客户机返回错误,可以抛出与框架捆绑在一起的大量常规异常(如HTTPBadRequest)中的一个,或者使用通用的falcon.HTTPError异常 。如果需要对路由进行预处理或后处理,Falcon也为它们提供了钩子 。
Falcon对APIs的关注意味着这里很少有使用传统HTML用户界面构建web应用程序的内容 。例如,不要对表单处理函数和CSRF保护工具抱有太多期望 。但是,Falcon提供了优雅的选项来扩展其功能,因此可以构建更复杂的项目 。除了上述钩子机制之外,您还可以找到一个用于创建中间件的接口,该接口可用于包装所有Falcon的APIs 。
与其他框架相比,Falcon的文档比较少,但这只是因为覆盖的内容比较少 。用户指南包括对所有主要特性的正式的逐步演示,以及快速启动部分,允许您查看有或没有注释的样例代码 。
示例代码如下:
class QuoteResource:def on_get(self, req, resp):"""Handles GET requests"""quote = {'quote': ("I've always been more interested in ""the future than in the past."),'author': 'Grace Hopper'}resp.media = quoteapi = falcon.API()api.add_route('/quote', QuoteResource())4. FastAPIFastAPI(https://fastapi.tiangolo.com/)的名称很好地总结了它所做的事情 。它被构建为快速创建API端点而服务,且运行速度也很快 。

文章插图
FastAPI利用Starlette项目作为其高速网络核心,但是要使用FastAPI,您不需要了解Starlette的内部原理 。定义端点的方式与Flask或Bottle应用程序非常相似——使用装饰器(decorator)来指明哪个函数处理哪个路由——然后返回自动转换成JSON的字典 。
推荐阅读
- 电脑中存在多个版本的Python如何不冲突?
- Web3会让开源的未来更好吗?
- 互联网革命的新赛道——Web3.0
- 2022 Web3 所有权经济
- 分布式锁的实现方式
- Docker私有仓库Registry删除镜像的方法
- 滇红茶有黑色的,红茶的泡多长时间
- 崂山红茶泡茶时间,崂山红茶的保质期
- 泡红茶的茶具名称,金骏茶的功效与作用
- 蜜糖泡红茶,蜜糖红茶
