11.7 领域驱动设计(DDD)概念
Python初学者快速上手FastAPI教程:从零到一构建API
面向有Python基础的初学者的FastAPI入门教程,通过生活化类比和逐步动手实践,快速构建你的第一个API,建立信心,无需Web开发经验。
FastAPI入门教程:让Python初学者快速上手
欢迎来到FastAPI世界
FastAPI就像你厨房里的高效披萨工具:它能让开发API变得快速、简单又美味!适合新手快速入门,因为你已经有Python基础,我们跳过繁琐理论,直接动手玩起来。
类比: 把FastAPI想象成一个智能点餐系统——你定义菜单(API端点),顾客(客户端)点餐(发送请求),系统快速上菜(返回响应)。
准备工作:安装和设置
首先,确保你安装了Python(建议Python 3.7+)。打开终端或命令提示符,运行以下命令安装FastAPI和一个服务器(Uvicorn):
pip install fastapi uvicorn
成功时刻: 看到安装完成的消息后,恭喜!你已经准备好打造你的第一个API了。
你的第一个API:Hello World!
创建一个新文件,比如 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"} 的JSON响应!
成功时刻: 哇,你的第一个API已经在线了!这就像一个魔术师变出了第一个兔子——简单但令人兴奋。
理解路由:你的API地址本
路由是API的入口点,就像电话本上的不同号码。在上例中,@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}。
成功时刻: 看到数字42了吗?你的API现在能处理动态输入了,就像电话可以接通不同的人一样。
处理请求和响应:点餐和上菜的类比
- 请求: 客户端发送的“订单”,比如浏览器访问一个URL。
- 响应: API返回的“菜品”,这里是JSON数据。
FastAPI自动处理类型转换,比如把URL中的字符串参数转换成整数。
示例:添加查询参数
@app.get("/items/")
def read_items(skip: int = 0, limit: int = 10):
return {"skip": skip, "limit": limit}
访问 http://127.0.0.1:8000/items/?skip=5&limit=20,返回 {"skip": 5, "limit": 20}。
成功时刻: 现在你的API能理解更复杂的“订单”了,就像餐厅可以定制披萨配料!
参数:让你的API更智能
FastAPI支持路径参数(如 {item_id})、查询参数(如 skip 和 limit),还能自动验证数据类型。
生活化类比: 路径参数像披萨的尺寸(必须指定),查询参数像额外的配料(可选添加)。
实战:创建一个待办事项API
让我们构建一个简单的待办事项列表API,模拟CRUD操作(创建、读取、更新、删除)。
步骤:
- 在
main.py中添加一个列表来存储事项。 - 定义多个路由来处理操作。
代码示例:
from fastapi import FastAPI
from typing import List
app = FastAPI()
todos = ["学习FastAPI", "写第一个API"]
@app.get("/todos/")
def get_todos() -> List[str]:
return todos
@app.post("/todos/")
def add_todo(todo: str):
todos.append(todo)
return {"message": "待办事项已添加", "todo": todo}
@app.delete("/todos/{todo_index}")
def delete_todo(todo_index: int):
if todo_index < len(todos):
deleted_todo = todos.pop(todo_index)
return {"message": "待办事项已删除", "deleted_todo": deleted_todo}
else:
return {"error": "索引超出范围"}
使用工具如Postman或curl测试POST和DELETE请求,但为了简单,我们可以先用浏览器测试GET请求。
访问 http://127.0.0.1:8000/todos/,看到初始待办列表。
成功时刻: 你现在有了一个功能性的待办事项API!像管理自己的任务清单一样酷炫。
总结与下一步
恭喜!你已经学会了FastAPI的基础:设置环境、创建路由、处理参数,并构建了一个简单的API。
类比回顾: 从快速披萨工具到智能点餐系统,你已经能制作自己的“数字美食”。
下一步建议:
- 探索FastAPI的更多特性,如数据模型(Pydantic)和依赖注入。
- 尝试连接数据库来持久化数据。
- 部署你的API到云端,如Heroku或AWS。
记住,每次小成功都是进步的里程碑。继续实践,FastAPI会让Web开发变得轻松有趣!
这个教程通过动手示例和类比,帮助你快速上手FastAPI。如果有问题,多查官方文档或社区,享受编程的乐趣!