10分钟用Python搭个接口,还能自动生成文档?

你是不是也会这样?花半天时间写一个 API 接口,还得再花半天时间憋一个 API 文档。领导催,同事问,光是维护文档就要了半条命。

今天,我向你推荐一个Python界的"超级新星"------FastAPI 。它能让你在10分钟内,不仅搭好接口,还自动生成一套漂亮的交互式文档,微软、Netflix都在用!

第一步:战前准备

1、确保你的 Python 环境(强烈建议 Python 3.8 以上)

ruby 复制代码
$ python3 -V
Python 3.12.8

2、创建并激活虚拟环境(强烈建议)

shell 复制代码
# 创建项目目录
$ mkdir fastapi-quickstart
# 切换到项目根目录
$ cd fastapi-quickstart/
# 创建虚拟环境
$ python3 -m venv .venv
$ ls -a
.     ..    .venv
# 激活虚拟环境(macOS/Linux),当看 (.venv) 时,表示我们激活成功了。
$ source .venv/bin/activate
(.venv) bogon:fastapi-quickstart wt$

3、安装依赖

ruby 复制代码
# 列出已经安装的依赖包
(.venv) bogon:fastapi-quickstart wt$ pip list
Package Version
------- -------
pip     24.3.1
​
# 安装 fastapi 依赖包,这里使用了清华镜像源
(.venv) bogon:fastapi-quickstart wt$ pip install fastapi -i https://pypi.tuna.tsinghua.edu.cn/simple
...
​
# 安装 uvicorn 依赖包,这里使用了清华镜像源
(.venv) bogon:fastapi-quickstart wt$ pip install "uvicorn[standard]" -i https://pypi.tuna.tsinghua.edu.cn/simple
...
​
# 列出已经安装的依赖包
(.venv) bogon:fastapi-quickstart wt$ pip list
Package           Version
----------------- -------
annotated-doc     0.0.4
annotated-types   0.7.0
anyio             4.12.0
click             8.3.1
fastapi           0.124.2
h11               0.16.0
httptools         0.7.1
idna              3.11
pip               24.3.1
pydantic          2.12.5
pydantic_core     2.41.5
python-dotenv     1.2.1
PyYAML            6.0.3
starlette         0.50.0
typing_extensions 4.15.0
typing-inspection 0.4.2
uvicorn           0.38.0
uvloop            0.22.1
watchfiles        1.1.1
websockets        15.0.1

第二步:编写核心代码

使用 IDE PyCharm 打开 fastapi-quickstart 项目目录,新建 main.py 文件,写入如下代码:

python 复制代码
​
from fastapi import FastAPI
​
# 创建一个 FastAPI 应用实例
app = FastAPI()
​
# 定义一个根路径的 GET 请求接口
@app.get("/")
async def read_root():
    return {"message": "欢迎来到我的第一个 FastAPI 服务器!"}

第三步:运行与测试

切换到终端,我们到 "fastapi-quickstar" 项目根目录下。(确保当前已激活虚拟环境)

使用 uvicorn main:app --reload 运行我们的 FastAPI 应用程序。

vbnet 复制代码
(.venv) bogon:fastapi-quickstart wt$ uvicorn main:app --reload
INFO:     Will watch for changes in these directories: ['/Users/wt/code/fastapi-quickstart']
INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO:     Started reloader process [10879] using WatchFiles
INFO:     Started server process [10881]
INFO:     Waiting for application startup.
INFO:     Application startup complete.

当我们看到 Application startup complete.的信息后,恭喜你!服务已经启动成功了。

我们打开浏览器,访问 http://127.0.0.1:8000 ,你会看到如下响应信息:

json 复制代码
{"message":"欢迎来到我的第一个 FastAPI 服务器!"}

恭喜你!你的 Python API 接口已经开发成功了。

扩展:令人惊艳的"魔法" ------ 交互式API文档

这是 FastAPI 最让人惊艳的地方!它自动为你的API生成了完整的文档。

你在浏览器中访问 http://127.0.0.1:8000/docs,你会看到一个非常漂亮的界面,里面列出了你所开发的 API 接口。

你可以点击它,再点击 "Try it out",再点击 "Execute"。这时,这个页面里会直接调用你的 API 接口并查看调用结果!而无需要外部工具。


-------- 写在最后 --------

恭喜你! 短短10分钟,你已经成功入门了现代Python Web开发利器------FastAPI。它不仅速度快,更难得的是让开发变得如此简单直观。

如果你想系统学习FastAPI,解锁数据库连接、用户认证等高级技能,请在评论区回复 【FastAPI】 ,将获得我为你整理的:

1、完整的 FastAPI 学习路线图

2、项目源码


点赞 :让更多人看到这篇实用教程

分享 :分享给正在学习 Python 的小伙伴!

关注 :不错过每一篇 Python 实战干货!

每周更新 Python 自动化办公、Web 开发、算法等硬核技巧,助你成为 10 倍效率的开发者!


#Python #FastAPI #API #Web开发 #程序员 #编程教程 #效率提升

相关推荐
Blossom.1182 小时前
大模型推理优化实战:连续批处理与PagedAttention性能提升300%
大数据·人工智能·python·神经网络·算法·机器学习·php
bybitq2 小时前
Leetcode-3780-Python
python·算法·leetcode
如何原谅奋力过但无声2 小时前
【力扣-Python-75】颜色分类(middle)
python·算法·leetcode
masterqwer3 小时前
day40打卡
python
小兔崽子去哪了3 小时前
机器学习,KNN 算法
后端·python·机器学习
interception3 小时前
爬虫逆向,瑞数6,补环境,国家专利
javascript·爬虫·python·网络爬虫
laocooon5238578863 小时前
相对名次算法的处理python
开发语言·python·算法
星火开发设计3 小时前
Python冒泡排序详解:从原理到代码实现与优化
开发语言·笔记·python·开源·排序算法·课程设计
小智RE0-走在路上3 小时前
Python学习笔记(9) --文件操作
笔记·python·学习