FastAPI初体验
官网🔗https://fastapi.tiangolo.com/zh/
FastAPI 是一个用于构建 API 的现代、快速(高性能)的 web 框架,使用 Python 3.6+ 并基于标准的 Python 类型提示。
自带接口文档,使用swagger UI
安装(需要一个 ASGI 服务器,生产环境可以使用 Uvicorn)
- pip install fastapi
- pip install uvicorn
from fastapi import FastAPI app = FastAPI() @app.get("/") async def root(): return {"message": "Hello World"} @app.get("/hello/{name}") async def say_hello(name: str): return {"message": f"Hello {name}"}
启动
- uvicon main:app --reload
main是文件名;app是FastAPI实例化对象
import time from fastapi import FastAPI app = FastAPI() @app.get('/') async def index(): time.sleep(3) return {'code': 100, 'msg': '成功'} @app.get('/home') async def home(): time.sleep(2) return {'code': 100, 'msg': 'home'} @app.get('/order') async def home(): time.sleep(2) return {'code': 100, 'msg': 'order'}
写上async代表协程
******
如果是Django、flask这种同步框架,他会开启3个线程来处理这3个请求
FastAPI、Sanic这种框架,就只用一个线程来处理这3个请求,遇到io操作会不停切换,这就是协程,单线程下的并发。1个线程干完3个请求,体现了高性能
******
注意⚠️遇到io的操作要写上await关键字,后面带io的操作,不可以写time.sleep(2)
用FastAPI比原来同步框架的区别是多了async修饰函数,还有io操作多了个await关键字