FastAPI 教程

11.2 中型项目模块化结构

FastAPI入门教程:Python初学者构建模块化Web应用的简单指南

FastAPI 教程

这是一份面向Python初学者的FastAPI快速上手教程,无需Web开发经验。通过生活化类比和大量简单示例,您将学习基础概念,轻松构建模块化Web应用,建立信心并享受成功时刻。包含SEO优化内容,助力您快速入门。

推荐工具
PyCharm专业版开发必备

功能强大的Python IDE,提供智能代码补全、代码分析、调试和测试工具,提高Python开发效率。特别适合处理列表等数据结构的开发工作。

了解更多

FastAPI入门教程:为Python初学者打造的简单Web开发指南

欢迎来到FastAPI的世界!

想象一下,您有一个魔法盒子(FastAPI),只需写几行Python代码,就能让您的想法通过互联网与别人交流。就像建一座小房子一样,我们从地基开始,一步一步搭建,最终让它变成一个模块化、可扩展的“中型建筑”。别担心,我会陪您走过每一步,让您尽快看到成果!

前提条件

  • 您已经掌握了Python基础语法(比如变量、函数、列表)。
  • 不需要任何Web开发经验——我们把所有复杂的东西简化成日常比喻。

第一步:安装和设置——准备好您的工具包

首先,打开命令行(如终端或CMD),安装FastAPI和一个服务器。FastAPI就像一个建筑蓝图,而Uvicorn是施工队,帮助运行您的应用。

pip install fastapi uvicorn

成功时刻:安装完成,没有任何错误!这意味着您的环境已经就绪。

第二步:创建您的第一个FastAPI应用——从“Hello World”开始

创建一个新文件,命名为 main.py,然后写以下代码。这就像写一封信,告诉世界:“我在这里!”

from fastapi import FastAPI

app = FastAPI()  # 这是您的应用核心,类似公司总部

@app.get("/")  # 定义一个路由,类似公司的大门
async def read_root():
    return {"message": "Hello, World!"}

生活化类比app 是您的公司,@app.get("/") 是公司门口,当有人访问时,它会返回一个欢迎消息。

第三步:运行应用并查看第一个API——见证奇迹的时刻

在命令行中,运行:

uvicorn main:app --reload
  • main:app 告诉Uvicorn在哪里找您的应用(文件 main.py 中的 app 变量)。
  • --reload 是开发模式,自动更新变化,省去重启麻烦。

现在,打开浏览器访问 http://127.0.0.1:8000,您会看到 {"message": "Hello, World!"}

成功时刻:看到JSON响应弹出,您已经成功创建了您的第一个Web API!为自己鼓掌吧!

第四步:添加更多端点——扩展您的“公司”

main.py 中,添加另一个端点,比如处理用户信息。这就像在公司里增加一个新部门。

@app.get("/users/{user_id}")  # 路径参数,类似用ID找员工
async def read_user(user_id: int):
    return {"user_id": user_id, "name": "Alice"}

访问 http://127.0.0.1:8000/users/1,您会看到 {"user_id": 1, "name": "Alice"}

实践练习:试着添加一个 @app.post("/users") 来创建新用户,返回一些假数据。记住,POST通常用于创建东西,就像招聘新员工一样。

第五步:引入模块化结构——让您的项目更有条理

对于一个中型项目,代码会变多,我们需要像组织公司部门一样模块化。FastAPI的 APIRouter 就是您的部门经理。

  1. 创建一个新文件 routers/users.py
from fastapi import APIRouter

router = APIRouter()  # 这是用户部门的经理

@router.get("/")  # 部门内的路由
async def get_users():
    return [{"id": 1, "name": "Alice"}, {"id": 2, "name": "Bob"}]

@router.post("/")
async def create_user():
    return {"message": "User created"}
  1. main.py 中导入并包含这个路由器:
from fastapi import FastAPI
from routers import users  # 导入用户部门

app = FastAPI()
app.include_router(users.router, prefix="/users", tags=["users"])  # 把部门整合到总部,并指定前缀

@app.get("/")
async def read_root():
    return {"message": "Hello, World!"}

现在,访问 http://127.0.0.1:8000/users/,您会看到用户列表!

生活化类比:想象您的公司(app)有多个部门(routers),每个部门独立管理自己的事务,但都向总部汇报。这使代码更整洁、易于维护。

第六步:实践项目——构建一个简单的待办事项API

让我们一起动手,创建一个模块化的待办事项API,巩固所学。

  1. 创建 routers/todos.py
from fastapi import APIRouter

router = APIRouter()

todos = [{"id": 1, "task": "Learn FastAPI", "done": False}]

@router.get("/")
async def get_todos():
    return todos

@router.post("/")
async def add_todo(task: str):
    new_todo = {"id": len(todos) + 1, "task": task, "done": False}
    todos.append(new_todo)
    return new_todo
  1. 更新 main.py 以包含此路由器:
from fastapi import FastAPI
from routers import users, todos

app = FastAPI()
app.include_router(users.router, prefix="/users", tags=["users"])
app.include_router(todos.router, prefix="/todos", tags=["todos"])

@app.get("/")
async def read_root():
    return {"message": "Hello, World! Welcome to my modular API!"}
  1. 运行应用并测试:访问 http://127.0.0.1:8000/todos/ 查看待办事项,或使用工具如curl或Postman发送POST请求添加新任务。

成功时刻:现在您有一个结构清晰的API,分为用户和待办事项模块!您的“中型项目”已经有了雏形。

总结与下一步

恭喜!您已经学会了FastAPI的基础,从简单应用到模块化结构。通过动手实践,您可能已经体验到了多个“成功时刻”。记住:

  • FastAPI让Web开发变得简单快速。
  • 使用 APIRouter 可以使项目易于扩展和维护。
  • 多练习,尝试添加错误处理、数据库集成等。

保持信心:就像学骑自行车,一开始可能会摇摇晃晃,但坚持下去,您会发现自己能构建更复杂的东西。访问FastAPI官方文档(https://fastapi.tiangolo.com/)深入探索。

快乐编码!🚀

开发工具推荐
Python开发者工具包

包含虚拟环境管理、代码格式化、依赖管理、测试框架等Python开发全流程工具,提高开发效率。特别适合处理复杂数据结构和算法。

获取工具包