14.5 静态文件服务优化
Python初学者FastAPI入门教程 - 快速上手Web开发
面向有Python基础的初学者的FastAPI入门教程,详细讲解基础概念,通过简单示例快速上手,建立信心,涵盖安装、路由、端点、请求处理等。
Python初学者FastAPI入门教程
1. 为什么选择FastAPI?
FastAPI是一个现代、快速(高性能)的Python Web框架,用于构建API。它简单易学,特别适合初学者,就像学习用Python写脚本一样自然。
2. 准备工作
首先,确保安装了Python(建议版本3.7以上)。然后,安装FastAPI和Uvicorn(一个ASGI服务器,用来运行FastAPI应用)。
pip install fastapi uvicorn
成功时刻:安装完成,没有任何错误,你已经准备好了工具!
3. 你的第一个FastAPI应用
创建一个新文件,比如 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!
成功时刻:看到JSON响应在浏览器中,你已经成功运行了一个Web服务器,感觉就像点亮了一盏灯!
4. 理解路由和端点:用餐厅类比
想象FastAPI应用就像一个餐厅:
- 应用:整个餐厅,你的代码就是装修和菜单。
- 路由:餐厅里的菜单路径,比如“/”是入口,“/menu”是菜单页。
- 端点:菜单上的具体菜项,比如
@app.get("/")对应主页的“欢迎”菜。
5. 添加更多端点:个性化问候
添加一个新的端点来返回个性化消息:
@app.get("/greet/{name}")
def greet(name: str):
return {"message": f"Hello, {name}!"}
运行应用,访问 http://127.0.0.1:8000/greet/Alice,你将看到 {"message": "Hello, Alice!"}。
成功时刻:动态内容工作正常,你可以通过URL传递名字,就像在餐厅点菜时告诉服务员你的喜好!
6. 处理POST请求:模拟用户注册
现在,创建一个接收POST请求的端点,模拟用户注册:
from pydantic import BaseModel
class User(BaseModel):
username: str
email: str
@app.post("/register")
def register(user: User):
return {"user": user.username, "message": "Registered successfully"}
使用工具如Postman或curl发送POST请求到 http://127.0.0.1:8000/register,使用JSON体 {"username": "John", "email": "john@example.com"}。你会得到响应。
成功时刻:成功接收并处理用户数据,就像餐厅接收订单并确认!
7. 返回JSON响应:自动转换
FastAPI自动将Python字典转换为JSON,非常方便。例如:
@app.get("/items/{item_id}")
def get_item(item_id: int, q: str = None):
item = {"item_id": item_id}
if q:
item.update({"query": q})
return item
访问 http://127.0.0.1:8000/items/42?q=test,查看响应。
8. 静态文件服务优化(简要提及)
如果你需要提供静态文件(如图片、CSS文件),FastAPI可以与StaticFiles一起使用。作为入门,先掌握基础,但这里是一个简单示例:
from fastapi.staticfiles import StaticFiles
app.mount("/static", StaticFiles(directory="static"), name="static")
创建一个static文件夹,放入文件(比如index.html),然后访问 http://127.0.0.1:8000/static/index.html 来查看文件。
成功时刻:静态文件被正确提供,就像餐厅提供菜单图片一样直观!
9. 总结和下一步
通过这个教程,你已经学会了创建基本FastAPI应用、定义路由、处理GET和POST请求,以及返回JSON响应。继续实践,尝试添加更多功能,比如路径参数、查询参数、请求体等。FastAPI文档很友好,可以逐步探索!
保持信心:Web开发并不难,就像学做菜一样,从简单开始,慢慢积累!