FastAPI 教程

8.3 内置中间件:CORS、HTTPSRedirect 等

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

FastAPI 教程

面向Python初学者的FastAPI入门教程,通过动手实践和简单类比,详细讲解基础概念,包括安装、创建第一个API以及内置中间件如CORS和HTTPSRedirect,帮助建立信心。

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

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

了解更多

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

欢迎来到FastAPI入门教程!如果你已经掌握了Python基础语法,但没有Web开发经验,这个教程正是为你设计的。我们将从零开始,用简单易懂的方式学习FastAPI,快速创建自己的Web API。全程避免复杂理论,侧重动手实践,让你在每一步都能体验到成功的喜悦。

1. 什么是FastAPI?

FastAPI是一个现代、快速(高性能)的Web框架,用于构建API(应用程序编程接口)。想象一下,如果你需要搭建一个餐厅的点餐系统,FastAPI就像是那个高效、智能的服务员,能快速处理顾客的订单(请求)并返回美味的菜品(响应)。

  • 生活化类比:FastAPI就像邮局的自动分拣机,能高效处理信件(数据请求),并快速发送回复。
  • 为什么适合初学者:FastAPI易于学习,代码简洁,还自动生成文档,让你专注于逻辑而不被复杂设置困扰。

2. 准备工作:安装FastAPI

在开始之前,确保你已安装Python(建议版本3.7以上)。然后,打开终端或命令提示符,运行以下命令安装FastAPI和一个用于运行服务的工具(如Uvicorn)。

pip install fastapi uvicorn

成功时刻:看到安装完成的消息,你就准备好动手了!

3. 创建第一个API:Hello World

现在,我们来创建最简单的API。新建一个Python文件,比如 main.py,并输入以下代码:

# main.py
from fastapi import FastAPI

app = FastAPI()  # 创建一个FastAPI应用,就像启动一个新的邮局

@app.get("/")  # 定义一个路由,当访问根路径(如http://localhost:8000/)时处理
async def read_root():
    return {"message": "Hello, World!"}  # 返回一个JSON响应

运行这个API:在终端中,切换到文件所在目录,执行:

uvicorn main:app --reload
  • 解释uvicorn 是服务器,main:app 指定你的应用,--reload 让代码更改后自动重启。

成功时刻:打开浏览器,访问 http://localhost:8000/,你会看到 {"message": "Hello, World!"}!这就是你的第一个API,简单吧?

4. 基础概念:路由和端点

在FastAPI中,路由定义了URL路径(如/)和处理函数。这个处理函数就是端点。就像在邮局,不同地址(路径)对应不同信箱(端点),用来处理特定信件。

生活化类比:路由像是餐厅的菜单目录,每个菜品对应一个路径(如/pizza),端点就是厨师处理订单。

添加更多端点示例:

@app.get("/items/{item_id}")
async def read_item(item_id: int):
    return {"item_id": item_id, "message": "这是一个物品!"}

访问 http://localhost:8000/items/42,返回 {"item_id": 42, "message": "这是一个物品!"}

5. 处理请求和响应

FastAPI自动处理请求数据(如查询参数、POST数据)并返回响应(通常是JSON)。我们来看一个处理POST请求的例子,模拟用户提交数据。

from pydantic import BaseModel  # 用于定义数据模型

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

@app.post("/items/")
async def create_item(item: Item):
    return {"item": item.name, "price": item.price}

使用工具如Postman或浏览器扩展发送POST请求到 http://localhost:8000/items/,数据为 {"name": "苹果", "price": 5.5},你会看到响应 {"item": "苹果", "price": 5.5}

成功时刻:发送数据并收到响应,你成功处理了用户输入!

6. 内置中间件:CORS和HTTPSRedirect

FastAPI内置了一些中间件,可以增强应用功能。中间件就像是邮局的安检环节,在处理信件前后执行额外操作。

6.1 CORS(跨源资源共享)

CORS允许不同来源(如前端网站)安全地访问你的API。默认情况下,如果不设置CORS,其他网站无法访问你的API。

  • 生活化类比:CORS像是餐厅门口的安全检查,只允许特定顾客(域名)进入,防止陌生人闯入。

启用CORS很简单。在 main.py 中添加:

from fastapi.middleware.cors import CORSMiddleware

app.add_middleware(
    CORSMiddleware,
    allow_origins=["*"],  # 允许所有来源访问,生产环境中应指定具体域名
    allow_credentials=True,
    allow_methods=["*"],  # 允许所有HTTP方法
    allow_headers=["*"],
)

成功时刻:重启服务后,你的API可以从任何前端网站访问了!

6.2 HTTPSRedirect

HTTPSRedirect中间件会自动将HTTP请求重定向到HTTPS,确保连接安全。就像邮局强制使用加密信封发送重要信件。

启用HTTPSRedirect:

from fastapi.middleware.httpsredirect import HTTPSRedirectMiddleware

app.add_middleware(HTTPSRedirectMiddleware)  # 添加这行代码

注意:这需要你实际部署到支持HTTPS的服务器上。在本地测试时,你可以模拟或跳过这部分。

7. 更多简单示例

让我们巩固信心,添加一个计算示例:

@app.get("/add/{a}/{b}")
async def add_numbers(a: int, b: int):
    return {"result": a + b}

访问 http://localhost:8000/add/2/3,返回 {"result": 5}

8. 总结和下一步

恭喜你!你已经学会了FastAPI的基础:

  • 安装和设置FastAPI。
  • 创建简单API并理解路由。
  • 处理请求和响应数据。
  • 使用内置中间件如CORS和HTTPSRedirect来增强应用。

每个步骤都提供了成功时刻,让你在实践中建立信心。接下来,你可以探索更多功能,比如数据库集成、用户认证等。记住,FastAPI文档(https://fastapi.tiangolo.com/)是你的好帮手,自动生成交互式API文档。

鼓励:Web开发并不难,从这个小起点出发,继续动手尝试,你会越来越熟练!


SEO优化提示:本教程针对Python初学者,涵盖FastAPI基础、安装、示例和中间件使用,帮助快速入门Web开发。通过生活化类比,简化复杂概念,确保学习过程轻松有趣。

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

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

获取工具包