首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >『FastAPI』快速入门

『FastAPI』快速入门

作者头像
德育处主任
发布2026-08-26 09:01:34
发布2026-08-26 09:01:34
510
举报

点赞 + 关注 + 收藏 = 学会了

本文简介

使用 Python 建站,除了 DjangoFlask 外,还有一个很好用的框架叫 FastAPI。从名字上就能看出,这个框架的特点就是快。

FastAPI 是一个用于构建 Web APIs 的现代、快速(基于 Starlette 和 Pydantic)、异步的 Python Web 框架。它非常适合快速构建高性能的 API 服务。很适合用来开发前后端分离的项目。

我打算开一个专栏,专门聊聊 FastAPI

本文先简单介绍一下 FastAPI 的基础用法,感受一下它的快!

安装 FastAPI

要使用 FastAPI 就要先安装它。

代码语言:javascript
复制
pip install fastapi

如果你不想在全局安装它的话,也可以使用 Python 的虚拟环境,具体操作可以参考 《Python 虚拟环境 venv》

编写第一个接口

创建一个目录(文件夹),在该目录下创建一个 main.py 文件(起其他名字也可以)。

main.py 里写下这段代码

代码语言:javascript
复制
from fastapi import FastAPI

app = FastAPI()

@app.get("/")
async def read_root():
    return {"message": "雷猴"}

@app.get("/blogList")
async def blogList():
    return {"data": "这是博客列表接口"}

上面的代码很简单,引入 FastAPI,并创建一个实例。

然后通过 @app.get() 这个装饰器创建使用 GET 访问的接口,里面传入第一个参数就是接口地址,@app.get("/") 就是根地址,@app.get("/blogList") 就是 /blogList

@app.get() 装饰器下方对应着这个接口要执行的方法。本文为了方便演示,所有接口都返回一个简单的 JSON 数据。

启动服务

代码写好了,要启动一个服务才能访问刚刚写好的接口。

推荐使用 uvicorn,它是一个轻量级的 ASGI 服务器,专门用于运行基于 ASGI(Asynchronous Server Gateway Interface)协议的 Python Web 应用程序。

使用下面这条命令安装 uvicorn

代码语言:javascript
复制
pip install uvicorn

然后进入项目目录,在终端执行下面这条命令就可以把项目运行起来了。

代码语言:javascript
复制
uvicorn main:app --reload

因为我们刚刚创建的文件叫 main.py ,所以这里运行的就是 uvicorn main:app

这句命令最后的 --reload 可以监听 main.py 文件是否发生变化,一旦 main.py 里的代码发生变化,uvicorn 就会自动重启服务器,刷新所有接口。

启动完项目后,在浏览器访问 http://127.0.0.1:8000/ 就能看到 @app.get("/") 这个接口返回的内容。

01.png
01.png

访问 http://127.0.0.1:8000/blogList 就能看到 @app.get("/blogList") 这个接口返回的内容。

02.png
02.png

自动生成接口文档

FastAPI 会自动生成两个非常有用的 API 文档界面:

http://127.0.0.1:8000/docs 使用 Swagger UI

03.png
03.png

http://127.0.0.1:8000/redoc 使用 ReDoc

04.png
04.png

通过这两个地址可以查看、测试和文档化你的 API。


以上就是本文的全部内容。使用 FastAPI ,几句代码就能写出一个接口,还能自动给你生成接口文档。

点赞 + 关注 + 收藏 = 学会了

IMG_3827.GIF
IMG_3827.GIF
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-10-10,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 本文简介
  • 安装 FastAPI
  • 编写第一个接口
  • 启动服务
  • 自动生成接口文档
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档