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关键字

posted @ 2023-08-01 20:49  雀雀飞了  阅读(116)  评论(0编辑  收藏  举报