从前景考虑,fastapi是python web的未来。但它的发展同时也受制于python web的发展,如果python web在未来式微,fastapi是难以力挽狂澜的。
fastapi利用异步和轻量级的特点,大大提升了性能。但异步应用到实际中,并不是一件容易的事。fastapi的异步不算难写,逻辑不复杂的话,闭着眼睛加几个await很简单。但如果涉及到复杂系统。一处异步,处处异步。到底要不要用可能就见仁见智了。
轻量级同时也代表着和flask一样,很多东西需要自己diy。而不是像django一样一站式解决。所以fastapi可能逐渐接过flask的位置,但还是难以对django发起挑战。
最重要的一点还是,选了python作为后端。可能打一开始就不是对性能有多敏感。而是看中python的开发效率和生态。如果从兼顾开发效率+性能的角度出发,那么fastapi极大程度上会遇到来自go的强力竞争。只有再兼顾上python现有生态,fastapi才会有很大的优势。
API文档、类型检测以及依赖注入
fastapi完全拥抱了typing类型系统,高度整合了openapi(swagger ui),正如他的名字一样fastapi,从api开发的角度来说,无论是性能还是开发效率,它都足够“fast”。为api文档提供了非常多的支持。无需任何配置,后端只要把endpoint写出来,一份详尽的api文档就会自动生成。对于小型项目来说绝对是巨大优势。
类型检测和依赖注入是api文档的基石 ,它们重点在于围绕框架的“感知力”。inspect抓endpoint的参数,明确的知道每个api接口需要什么,返回什么。这会让你感觉这个框架真的很有灵性。
在FastAPI中,如果需要使用静态文件, 可以使用StaticFiles,将它挂载到应用程序中。
挂载StaticFiles的方法:
其中参数:
是指这个“子应用程序”将被“安装”到的子路径。因此,任何以"/static"开头的路径都将由它处理。
该directory="static"指包含你的静态文件的目录名。
是一个可以被FastAPI内部使用的名称。
所有这些参数都可以任意命名,而不是必须使用static,根据应用程序的需要和具体细节进行调整。
代码示例:
在项目所在文件夹下新建public目录,将demopng和elephantpng复制到新建的public文件夹下面,启动应用,并在浏览器中请求:
可以看到,在浏览器中显示出对应的图像内容。
当我们需要在FastAPI中返回错误时,可以使用>
还有一部分 security 安全相关将单独开一章,本章将 FastAPI 剩余值得读的部分过一遍
这里定义了例如Depends(),Body()等类,内容比较简单。在此将它们列出,具体用法可直接参考官方文档。
上述类的工厂函数模式,返回实例。例如:
工具类,其中大部分函数,都已经在前几篇中被提及
一个JSON解码的工具
相比 Starlette 添加了一个线程池上下文管理器
对 Starlette 的 UploadFile 进行了封装
加了两种异常处理
新加了四种异常
添加了ORJSONResponse, orjson 是一种现在python性能最高的json库。有需求可以指定该种response。
以上就是关于如何评价最近爆红的FastAPI全部的内容,包括:如何评价最近爆红的FastAPI、24.FastAPI静态文件、18.FastAPI错误处理等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)