8.3 内置中间件:CORS、HTTPSRedirect 等
FastAPI入门教程:Python初学者快速上手Web开发
面向Python初学者的FastAPI入门教程,通过动手实践和简单类比,详细讲解基础概念,包括安装、创建第一个API以及内置中间件如CORS和HTTPSRedirect,帮助建立信心。
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开发。通过生活化类比,简化复杂概念,确保学习过程轻松有趣。