FastAPI 教程

12.1 测试环境配置与 pytest

Python FastAPI入门教程:从零开始学习Web开发与pytest测试

FastAPI 教程

本教程面向Python初学者,提供详细的FastAPI入门指南,涵盖基础概念、快速上手步骤和pytest测试环境配置,通过生活化类比和简单示例帮助新手轻松掌握Web开发,建立信心。

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

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

了解更多

Python FastAPI入门教程:从零开始学习Web开发与pytest测试

引言

如果你有基础的Python语法知识,但没有Web开发经验,那么FastAPI是你的完美选择!它就像一辆快速、易于驾驶的跑车,让你轻松上路。本教程将带你从零开始,快速构建你的第一个Web API,并通过pytest确保一切运行顺利。

第一部分:认识FastAPI

想象一下,你正在经营一家咖啡店,顾客通过菜单点餐,而FastAPI就是那个快速响应订单的点餐系统。它能理解顾客的需求(请求),并迅速提供咖啡(响应)。

安装FastAPI

首先,我们需要准备环境。打开你的终端或命令行,运行以下命令来安装FastAPI和uvicorn(一个ASGI服务器):

pip install fastapi uvicorn

这将安装FastAPI框架和uvicorn服务器,让我们能够运行Web应用。

你的第一个FastAPI应用

创建一个新的Python文件,比如 main.py,并添加以下代码:

from fastapi import FastAPI

app = FastAPI()

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

保存文件。现在,在终端中运行:

uvicorn main:app --reload

打开浏览器,访问 http://127.0.0.1:8000,你会看到 {"Hello": "World"} 显示在屏幕上!这就是你的第一个成功时刻:一个简单的API已经运行起来了。

第二部分:基础概念

路径操作

在FastAPI中,路径就像是网站的地址。例如,@app.get("/") 对应根路径,处理GET请求。你可以添加更多路径:

@app.get("/items/{item_id}")
def read_item(item_id: int):
    return {"item_id": item_id}

访问 http://127.0.0.1:8000/items/42,你会看到 {"item_id": 42}。这就像咖啡店有不同菜单项一样。

请求和响应

FastAPI自动处理JSON数据,让你专注于逻辑。尝试发送POST请求或使用参数。例如,添加一个POST端点:

@app.post("/items/")
def create_item(item: dict):
    return {"item": item}

通过工具如curl或Postman发送JSON数据来测试。

第三部分:测试环境配置

为了保证你的应用可靠,我们需要设置测试环境。这就像在咖啡店开业前进行试营业,检查一切是否正常。

安装pytest

pytest是Python中流行的测试框架。安装它:

pip install pytest

创建测试文件

在你的项目目录中,创建一个测试文件,比如 test_main.py,并添加以下代码:

from fastapi.testclient import TestClient
from main import app  # 假设你的主文件是main.py

client = TestClient(app)

def test_read_root():
    response = client.get("/")
    assert response.status_code == 200
    assert response.json() == {"Hello": "World"}

def test_read_item():
    response = client.get("/items/42")
    assert response.status_code == 200
    assert response.json() == {"item_id": 42}

运行测试:

pytest

如果一切顺利,你会看到测试通过的信息!这是另一个成功时刻,确保你的API按预期工作。

第四部分:建立信心

通过以上步骤,你已经:

  • 安装并运行了FastAPI应用。
  • 理解了基本概念。
  • 设置了测试环境并用pytest验证了功能。

尝试添加更多功能,比如处理POST请求、使用数据库或添加认证。FastAPI的文档清晰,社区支持好,让你轻松进阶。例如,创建一个更复杂的API端点:

from pydantic import BaseModel

class Item(BaseModel):
    name: str
    price: float

@app.put("/items/{item_id}")
def update_item(item_id: int, item: Item):
    return {"item_id": item_id, "item": item}

然后添加相应的测试用例到 test_main.py 中。

结语

本教程旨在让你快速上手FastAPI,通过简单示例建立信心。记住,实践是最好的老师,所以多动手尝试!希望你喜欢这个入门之旅。

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

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

获取工具包