FastAPI 教程

14.5 静态文件服务优化

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

FastAPI 教程

面向有Python基础的初学者的FastAPI入门教程,详细讲解基础概念,通过简单示例快速上手,建立信心,涵盖安装、路由、端点、请求处理等。

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

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

了解更多

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开发并不难,就像学做菜一样,从简单开始,慢慢积累!

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

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

获取工具包