当前位置:首页>python>初学Python 和 FastAPI 搭建(初学者入门版)

初学Python 和 FastAPI 搭建(初学者入门版)

  • 2026-09-08 06:55:53
初学Python 和 FastAPI 搭建(初学者入门版)

目前在学习Python,对于Python初学者来说,FastAPI是最适合入门的接口开发框架——语法简单、上手快,还能自动生成接口文档,不用额外写文档就能测试接口。本文将从零开始,带大家搭建一个简单的文章管理接口,全程极简,只保留核心功能,避开复杂概念。

一、核心准备

首先准备好Python环境(建议Python 3.8及以上,兼容性更好),然后安装3个核心依赖,复制命令直接在终端执行即可,不用纠结每个依赖的作用。

pip install fastapi uvicorn pydantic

简单说明(不用记,知道就行):

  • fastapi:核心框架,用来写接口的核心代码

  • uvicorn:服务器,用来运行我们写的接口项目

  • pydantic:用来校验数据(比如文章标题不能太长、内容不能为空)

二、项目结构

很多教程一上来就拆分多个文件,初学者容易乱。我们先从「单文件」入手,所有代码都写在一个main.py里,先跑通,再理解。

fastapi_article/  # 项目文件夹,随便起名字└── main.py        # 核心文件,所有代码都在这里

三、完整代码(有注释)

打开main.py,复制下面的代码,每一行都加了详细注释,初学者跟着注释看,就能明白每个部分的作用,不用死记硬背。

# 1. 导入需要的工具(固定写法,直接复制)from fastapi import FastAPI, HTTPExceptionfrom pydantic import BaseModelfrom typing import Optional, Listfrom datetime import datetime# 2. 创建接口应用实例(相当于启动一个接口服务,固定写法)app = FastAPI(    title="后台管理接口文档",  # 接口文档的标题,随便起    version="1.0.0",          # 版本号,随便写    docs_url="/docs"          # 自动生成的接口文档地址,固定 /docs)# 3. 定义文章的数据格式(告诉接口,接收/返回的文章长什么样)# 初学者理解:这是一个模板,规定了文章必须有哪些内容classArticle(BaseModel):title: str= "默认标题"  # 文章标题,字符串类型,默认值可选content: str             # 文章内容,字符串类型,必填(没有默认值就是必填)author: str              # 作者,字符串类型,必填    # 可选字段:可有可无,用Optional标注category: Optional[str] = None  # 文章分类,可选status: Optional[str] = "草稿"  # 文章状态,可选,默认是草稿# 4. 模拟数据库(初学者不用连接真实数据库,用列表临时存数据)# 相当于一个“记事本”,存我们创建的文章,程序关掉就没了fake_db: List[Article] = []# 用来自动生成文章ID(每创建一篇,ID+1)next_article_id = 1# 5. 编写第一个接口:创建文章(POST请求,用来新增数据)# @app.post("/articles") 表示:接口路径是 /articles,请求方式是POST@app.post("/articles", summary="创建文章", description="新增一篇文章,必填标题、内容、作者")async def create_article(article: Article):    # 全局变量,用来修改next_article_id的值    global next_article_id    # 给文章添加ID和创建时间(数据库会自动帮我们做,这里手动模拟)    new_article = {"id": next_article_id,"title": article.title,"content": article.content,"author": article.author,"category": article.category,"status": article.status,"create_time": datetime.now().strftime("%Y-%m-%d %H:%M:%S")  # 格式化时间,更易读    }    # 把新文章存入“记事本”(模拟存入数据库)    fake_db.append(new_article)    # ID自增,下一篇文章ID+1    next_article_id += 1    # 返回创建好的文章(接口的响应结果)return new_article# 6. 编写第二个接口:获取所有文章(GET请求,用来查询数据)@app.get("/articles", summary="获取所有文章", description="查询所有已创建的文章,无需传参数")async def get_all_articles():    # 直接返回“记事本”里的所有文章return fake_db# 7. 编写第三个接口:获取单篇文章(GET请求,根据ID查询)@app.get("/articles/{article_id}", summary="获取单篇文章", description="根据文章ID,查询某一篇文章的详情")async def get_one_article(article_id: int):    # 遍历“记事本”,找到ID匹配的文章for article in fake_db:if article["id"] == article_id:return article    # 如果没找到,返回404错误(提示文章不存在)    raise HTTPException(status_code=404, detail=f"文章ID {article_id} 不存在,检查ID是否正确")# 8. 编写第四个接口:删除文章(DELETE请求,用来删除数据)@app.delete("/articles/{article_id}", summary="删除文章", description="根据文章ID,删除某一篇文章")async def delete_article(article_id: int):    global fake_db    # 遍历“记事本”,找到ID匹配的文章并删除for idx, article in enumerate(fake_db):if article["id"] == article_id:            fake_db.pop(idx)return {"message": f"文章ID {article_id} 已删除", "success": True}    # 没找到,返回404错误    raise HTTPException(status_code=404, detail=f"文章ID {article_id} 不存在,无法删除")# 9. 运行项目(固定写法,直接复制)if __name__ == "__main__":import uvicorn    # 启动服务器,host=0.0.0.0 允许本地访问,port=8000 是端口号    uvicorn.run("main:app", host="0.0.0.0", port=8000, reload=True)    # reload=True 表示:修改代码后,服务器自动重启,不用手动关闭再启动

四、运行项目(3步搞定,超简单)

  1. 保存main.py文件,确保文件路径没有中文(比如不要放在“我的文档”里,放在桌面即可)。

  2. 打开终端(Windows按Win+R,输入cmd;Mac打开终端),进入项目文件夹(比如桌面的fastapi_article文件夹,输入命令:cd 桌面/fastapi_article)。

  3. 输入启动命令,按回车:python main.py(或者用:uvicorn main:app --reload,效果一样)。

启动成功的标志:终端显示“Uvicorn running on http://0.0.0.0:8000”,没有报错。

五、测试接口(不用写代码,可视化操作)

FastAPI最良心的地方:自动生成可视化接口文档,不用我们写任何代码,直接在浏览器里测试。

  1. 打开浏览器,输入地址:http://127.0.0.1:8000/docs,就能看到接口文档页面。

  2. 测试步骤(按顺序来,新手不迷路):

    • 第一步:测试「创建文章」接口(POST /articles) 点击接口右边的「Try it out」→ 修改请求参数(title、content、author必填,其他可选)→ 点击「Execute」→ 下方会显示响应结果,就是我们创建的文章。

    • 第二步:测试「获取所有文章」接口(GET /articles) 点击「Try it out」→ 直接「Execute」,就能看到所有创建的文章。

    • 第三步:测试「获取单篇文章」接口(GET /articles/{article_id}) 点击「Try it out」→ 输入文章ID(比如1)→ 「Execute」,就能看到这篇文章的详情。

    • 第四步:测试「删除文章」接口(DELETE /articles/{article_id}) 点击「Try it out」→ 输入文章ID → 「Execute」,提示删除成功,再去获取所有文章,就能看到文章已经消失。

六、初学者注意事项(避坑重点)

  • Python版本必须3.8及以上,否则可能报错(安装时注意查看版本)。

  • 安装依赖时,确保终端没有报错(如果报错,先升级pip:pip install --upgrade pip)。

  • 启动项目时,不要关闭终端(关闭终端,接口服务就停了)。

  • 接口路径不要写错,比如获取单篇文章是 /articles/1,不是 /article/1(多了s,少了s都会报错)。

  • 创建文章时,title、content、author是必填项,少填一个会报错(这是pydantic的校验功能)。

七、进阶

初学者先把上面的代码跑通、理解清楚,再逐步补充以下功能:

  1. 添加「更新文章」接口(PUT请求,修改已有的文章)。

  2. 连接真实数据库(比如MySQL),让文章数据永久保存(不是存在列表里)。

  3. 添加文章分类、状态筛选。

总结:对于初学者,不用纠结复杂的概念,先跑通代码,感受接口的作用,再慢慢理解每个部分的逻辑。上面的代码完全可以直接用于简单的文章管理场景,后续再根据需求扩展即可。

官网链接:https://fastapi.tiangolo.com/

福利时间

作者正在学习Python,同时也组建了一个氛围超棒的「Python 学习社群」,里面有很多正在学习的小伙伴,大家一起交流问题、分享经验、共建项目~

如果你对 Python 开发感兴趣,想跟着大家一起学习进步,关注公众号回复 「 Python 」 就能加入啦!

总结:

前端路上 | 所知甚少,唯善学。各位小伙伴有什么疑问,欢迎留言探讨。

--- ✨关注我:前端路上不迷路 ---

最新文章

随机文章