FastAPI 教程

15.2 Docker 容器化部署

FastAPI入门教程:Python初学者的快速Web开发指南

FastAPI 教程

这是一个面向Python初学者的FastAPI入门教程,涵盖基础概念、快速上手和动手实践,适合无Web开发经验的读者学习。教程使用生活化类比解释概念,包含简单示例帮助建立信心。

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

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

了解更多

FastAPI入门教程:Python初学者的快速Web开发指南

欢迎来到Web开发的世界!

如果你有Python语法基础,但从未接触过Web开发,别担心!这个教程将引导你轻松入门FastAPI。想象一下,Web开发就像开一家小咖啡馆,FastAPI是那位聪明又快速的服务员,帮你处理顾客的点单。让我们一起动手,几分钟内就能看到你的第一个Web应用运行起来!

为什么选择FastAPI?

FastAPI是一个现代、快速的Python Web框架,专为构建API设计。它易于学习,就像用Python写一个简单脚本一样。生活化类比:FastAPI就像你手机上的智能语音助手——你发出一个请求,它立即给出回应。对于初学者来说,这是建立信心的绝佳起点。

准备工作:轻松上阵

确保你的电脑上安装了Python 3.6或更高版本。如果还不确定,可以打开终端输入 python --version 检查。只需两个简单的步骤:

  1. 安装FastAPI:在终端中运行 pip install fastapi
  2. 安装Uvicorn(服务器):运行 pip install uvicorn
    • 这就像准备好厨具,Uvicorn是让你的应用“上桌”的厨师。

你的第一个FastAPI应用:立即成功!

让我们创建一个最简单的应用,感受一下“成功时刻”。打开你喜欢的代码编辑器(如VS Code或记事本),新建一个Python文件,比如 main.py,并粘贴以下代码:

from fastapi import FastAPI

# 创建一个FastAPI实例,就像初始化你的咖啡馆服务员
app = FastAPI()

# 定义一个路由,处理顾客的访问请求
@app.get("/")
def home():
    return {"message": "Hello, World! 欢迎来到FastAPI入门教程!"}

这个代码做了什么呢?

  • from fastapi import FastAPI:导入FastAPI库。
  • app = FastAPI():创建一个应用实例。
  • @app.get("/"):这是一个“装饰器”,它告诉FastAPI:当有人访问网站的根路径(比如 http://localhost:8000/),就执行下面的函数。
  • def home(): return {"message": "Hello, World!"}:这个函数返回一个JSON响应,就像服务员给你端上一杯欢迎咖啡。

运行和测试:看看效果!

在终端中,切换到 main.py 所在的目录,运行命令:

uvicorn main:app --reload
  • main 是文件名(不带.py),app 是我们在代码中创建的实例,--reload 表示自动重载,方便开发。 打开浏览器,访问 http://localhost:8000/。你会立即看到一个JSON响应:{"message": "Hello, World! 欢迎来到FastAPI入门教程!"}。恭喜!你的第一个Web应用已经运行起来了。

基础概念:用生活类比理解

  • 路由(Routes):就像咖啡馆的菜单——@app.get("/menu") 表示访问 /menu 路径时,返回菜单内容。
  • 请求和响应:顾客点单是请求(如浏览器访问),服务员上菜是响应(JSON数据)。 让我们添加一个简单例子来巩固概念。修改 main.py,增加一个新的路由:
@app.get("/greet/{name}")
def greet(name: str):
    return {"greeting": f"Hello, {name}! 很高兴认识你!"}

保存文件,FastAPI会自动重载。现在访问 http://localhost:8000/greet/小明,你会看到 {"greeting": "Hello, 小明! 很高兴认识你!"}。看到了吗?路径中的 {name} 是一个动态参数,就像根据顾客名字定制欢迎语。

动手实践:创建一个简单待办事项API

让我们更进一步,构建一个更实用的API。删除之前的内容,将 main.py 更新为以下代码:

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

# 定义一个待办事项模型,就像填写一个简单的表格
class TodoItem(BaseModel):
    task: str
    completed: bool = False

# 模拟一个待办事项列表
todo_list = []

# 添加待办事项
@app.post("/todos/")
def add_todo(item: TodoItem):
    todo_list.append(item)
    return {"message": "待办事项添加成功!", "item": item}

# 查看所有待办事项
@app.get("/todos/")
def get_todos():
    return {"todos": todo_list}

解释一下:

  • from pydantic import BaseModel:Pydantic帮助我们验证数据,就像确保表格填写正确。
  • class TodoItem:定义一个待办事项的数据结构,包括任务和完成状态。
  • @app.post("/todos/"):处理POST请求,用于添加数据;@app.get("/todos/") 用于获取数据。 运行应用后,你可以用浏览器测试GET请求,或用工具(如Postman或curl)测试POST请求。例如,用curl添加一个待办事项:
curl -X POST "http://localhost:8000/todos/" -H "Content-Type: application/json" -d '{"task": "学习FastAPI", "completed": false}'

然后访问 http://localhost:8000/todos/ 查看列表。每一次操作都会让你感受到成功的喜悦!

扩展学习:迈向更高级话题

一旦你掌握了基础,可以探索更多内容,如错误处理、数据库集成,甚至容器化部署(如用Docker打包应用)。Docker就像把你的咖啡馆打包成一个便携箱,方便在任何地方运行。但这属于高级话题,本教程专注于入门,确保你先打好基础。

总结:你做到了!

通过这个教程,你已经学会了安装FastAPI、创建简单应用、理解路由和请求响应,并构建了一个待办事项API。记住,Web开发并不神秘——它只是用代码处理请求和响应。继续练习,尝试添加更多功能,比如删除或更新待办事项。FastAPI官方文档是很好的学习资源。保持好奇心,你已经迈出了Web开发的第一步!

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

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

获取工具包