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实例化对象
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 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关键字
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律