FastAPI 教程

1.4 必备依赖安装:FastAPI、Uvicorn、Pydantic

Python FastAPI入门教程:快速上手Web开发

FastAPI 教程

这是一份专为Python初学者设计的FastAPI入门教程,通过简单易懂的示例和生活化类比,帮助您从零开始快速学习Web开发,建立编码信心。

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

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

了解更多

Python FastAPI入门教程:为初学者打造的信心之旅

介绍:FastAPI是什么?

想象一下,FastAPI就像一个超级快的点餐系统。在餐厅里,你告诉服务员(服务器)你想吃什么(请求),服务员快速处理并送上菜肴(响应)。同样,FastAPI能让你轻松创建网络应用,处理用户请求并返回数据。它结合了现代Python特性,特别适合初学者,因为它简单、快速,并且有自动文档生成。

必备依赖安装:开始前的准备

在开始编码之前,我们需要安装几个基本工具,这就像搭建一个工作台。确保你已经安装了Python(建议3.7+),然后打开命令行(终端或CMD),运行以下命令:

pip install fastapi uvicorn pydantic
  • FastAPI:主框架,用来构建API。
  • Uvicorn:服务器,像餐厅的服务员,负责运行和监听请求。
  • Pydantic:数据验证工具,像一张检查清单,确保输入数据正确。

如果一切顺利,你会看到安装成功的消息。恭喜!你已经迈出了第一步。

第一个FastAPI应用:你的“成功时刻”

让我们创建一个最简单的应用,体验一下FastAPI的强大。新建一个Python文件,比如 main.py,并添加以下代码:

# main.py
from fastapi import FastAPI

app = FastAPI()  # 创建一个FastAPI应用实例,就像搭建一个餐厅

@app.get("/")  # 定义一个路由,处理访问根路径(/)的GET请求
async def read_root():
    return {"message": "Hello, World!"}  # 返回一个简单的JSON响应

现在,运行服务器:

uvicorn main:app --reload
  • main:app:指定主文件和FastAPI实例。
  • --reload:启用热重载,代码更改后自动重启服务器,便于调试。

打开浏览器,访问 http://127.0.0.1:8000。你会看到一个JSON响应:{"message": "Hello, World!"}。太棒了!你已经创建了第一个API,这是一个重要的“成功时刻”。

理解基本概念:用生活化类比

  • 路由(Route):就像餐厅的菜单项,每个路径(如 /)对应一个功能。
  • 请求和响应(Request/Response):用户发送请求(点餐),服务器处理并返回响应(上菜)。
  • Uvicorn服务器:它是运行应用的“引擎”,类似于餐厅的厨房和服务员团队。
  • Pydantic模型:用于验证数据,想象你点餐时填写一个表格,Pydantic确保表格填写正确,避免错误订单。

更多动手示例:建立信心

示例1:创建一个简单的计算器API

修改 main.py 添加新路由:

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

# 使用Pydantic定义一个数据模型,就像为计算器输入定义规则
class Numbers(BaseModel):
    a: int
    b: int

@app.post("/add/")  # 处理POST请求,添加路径
async def add_numbers(numbers: Numbers):
    result = numbers.a + numbers.b
    return {"result": result}

运行服务器,使用工具(如Postman或浏览器扩展)发送POST请求到 http://127.0.0.1:8000/add/,JSON体为 {"a": 5, "b": 3}。响应会是 {"result": 8}。看,你快速构建了一个功能API!

示例2:构建一个迷你待办事项列表

扩展应用:

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

# 简单的数据存储,用列表模拟数据库
todos = []

class Todo(BaseModel):
    task: str
    completed: bool = False

@app.get("/todos/")  # 获取所有待办事项
async def get_todos():
    return todos

@app.post("/todos/")  # 添加新待办事项
async def add_todo(todo: Todo):
    todos.append(todo)
    return todo

运行后,访问 http://127.0.0.1:8000/todos/ 查看列表,发送POST请求添加事项。这展示了FastAPI处理数据的能力,建立更多信心。

探索自动文档:又一个惊喜

FastAPI自动生成交互式API文档。运行应用后,访问 http://127.0.0.1:8000/docshttp://127.0.0.1:8000/redoc。你可以在这里测试API,无需额外工具。这像是一个内置的餐厅菜单和点餐系统,非常方便。

总结和下一步

你已经掌握了FastAPI的基础:安装依赖、创建简单应用、理解路由和请求处理。通过类比和动手实践,你应该对Web开发有了初步信心。

下一步建议:

  • 尝试添加更多路由,比如删除或更新待办事项。
  • 学习处理路径参数(如 /users/{user_id})和查询参数。
  • 查阅官方文档(fastapi.tiangolo.com)深入学习。

记住,编程就像学习做菜——多加练习,你会越来越熟练。继续保持好奇和动手实践,享受FastAPI带来的乐趣!

如果有问题,欢迎在评论区讨论或查阅资源。祝你学习顺利!

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

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

获取工具包