FastApi是什么
顾名思义,FastApi就是一个用于构建高性能api的web框架。
FastApi的特点
- 快速:比肩NodeJs和Go
- 高效:开发效率提升一倍多
- 少BUG:减少开发错误率
- 智能:自动补全
- 简单:易于学习
- 简短:代码简小精悍
- 健壮:生产级别可用
- 文档:自动生成交互式文档
- 标准化:基于OpenApi
FastApi的安装
pip install fastapi[all] 复制代码
FastApi之hello world
main.py
from fastapi import FastAPI app = FastAPI() @app.get('/') async def root(): return {'message':'hello world!'} 复制代码
命令行启动
uvicorn.exe main:app --reload INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) INFO: Started reloader process [18784] using statreload INFO: Started server process [23504] INFO: Waiting for application startup. INFO: Application startup complete. 复制代码
打开 http://127.0.0.1:8000 查看效果
网络异常,图片无法展示
|
可以看到,后台程序已经成功返回。
主函数启动
from fastapi import FastAPI import uvicorn app = FastAPI() @app.get('/') async def root(): return {'message':'hello world!'} if __name__ == "__main__": uvicorn.run(app='main:app',host='127.0.0.1',port=8765,reload=True,debug=True) 复制代码
启动:
python main.py 复制代码
交互式的API文档
docs
浏览器访问:127.0.0.1:8765/docs
网络异常,图片无法展示
|
展开看下接口详细信息
网络异常,图片无法展示
|
点击右侧的Try it
网络异常,图片无法展示
|
即可实现接口调试!
完美!
redoc
浏览器访问:127.0.0.1:8765/redoc
网络异常,图片无法展示
|
FastApi和Flask的区别
经常看到有人把 FastAPI 和 Flask 放到一起比较,但是却没有意识到这完全是两种东西——前者是基于 Web 框架 Starlette 添加了 Web API 功能支持的(框架之上的)框架,而后者是和 Starlette 同类的通用 Web 框架,所以他两本就不是相同的东西,所以还是不要强行比较,选择适合自己的才是正确的。
至于说FastApi使用了asyncio而使得它的性能提升很大,在我看来没有网上介绍的那么夸张。因为在gevent的加持下,其他web框架也可以做到很高的并发,况且一般的服务都是会借助中间件和集群来实现高并发的,所以对于FastApi的高性能大家还是理性看待。感兴趣的同学可以去测试看看实际的结果。
本系列主要是介绍FastApi这个新的web框架,让大家能够对它有所了解,从而合理使用。
至此,FastApi的简单介绍结束。
感谢您的阅读,别忘了关注,点赞,评论,转发四连哟!