☰
FastAPI 学习指南
2026/10/11 8:19:08 网站建设 项目流程

FastAPI 学习指南

FastAPI 是一个现代、快速(高性能)的 Python Web 框架,用于构建 API。它基于 Python 类型提示,支持异步编程,并自动生成交互式 API 文档。以下是学习 FastAPI 的关键内容和方法。

核心概念

安装 FastAPI
使用 pip 安装 FastAPI 和 Uvicorn(ASGI 服务器):

pipinstallfastapi uvicorn

创建第一个 API
创建一个简单的 FastAPI 应用:

fromfastapiimportFastAPI app=FastAPI()@app.get("/")defread_root():return{"Hello":"World"}

运行应用:

uvicorn main:app --reload

路由和请求处理

路径参数
使用路径参数动态处理请求:

@app.get("/items/{item_id}")defread_item(item_id:int):return{"item_id":item_id}

查询参数
处理查询参数:

@app.get("/items/")defread_items(skip:int=0,limit:int=10):return{"skip":skip,"limit":limit}

请求体和模型

使用 Pydantic 模型
定义数据模型并验证请求体:

frompydanticimportBaseModelclassItem(BaseModel):name:strdescription:str=Noneprice:floattax:float=None@app.post("/items/")defcreate_item(item:Item):returnitem

异步支持

异步路由
FastAPI 支持异步函数:

@app.get("/async/")asyncdefread_async():return{"message":"Async endpoint"}

自动文档

交互式 API 文档
FastAPI 自动生成 Swagger UI 和 ReDoc 文档:

  • Swagger UI:http://127.0.0.1:8000/docs
  • ReDoc:http://127.0.0.1:8000/redoc

依赖注入

依赖注入系统
使用依赖注入管理共享逻辑:

fromfastapiimportDependsdefcommon_parameters(q:str=None,skip:int=0,limit:int=100):return{"q":q,"skip":skip,"limit":limit}@app.get("/items/")asyncdefread_items(commons:dict=Depends(common_parameters)):returncommons

中间件

添加中间件
使用中间件处理请求和响应:

fromfastapiimportRequest@app.middleware("http")asyncdefadd_process_time_header(request:Request,call_next):response=awaitcall_next(request)response.headers["X-Custom-Header"]="FastAPI"returnresponse

安全性和认证

OAuth2 和 JWT
实现基于 OAuth2 和 JWT 的认证:

fromfastapi.securityimportOAuth2PasswordBearer oauth2_scheme=OAuth2PasswordBearer(tokenUrl="token")@app.get("/users/me")asyncdefread_current_user(token:str=Depends(oauth2_scheme)):return{"token":token}

数据库集成

SQLAlchemy 集成
使用 SQLAlchemy 连接数据库:

fromsqlalchemyimportcreate_enginefromsqlalchemy.ext.declarativeimportdeclarative_basefromsqlalchemy.ormimportsessionmaker SQLALCHEMY_DATABASE_URL="sqlite:///./test.db"engine=create_engine(SQLALCHEMY_DATABASE_URL)SessionLocal=sessionmaker(autocommit=False,autoflush=False,bind=engine)Base=declarative_base()

测试和部署

测试 FastAPI 应用
使用 TestClient 编写测试:

fromfastapi.testclientimportTestClient client=TestClient(app)deftest_read_root():response=client.get("/")assertresponse.status_code==200

部署
使用 Uvicorn 或 Gunicorn 部署:

uvicorn main:app --host0.0.0.0 --port8000

学习资源

  • 官方文档:https://fastapi.tiangolo.com/
  • GitHub 仓库:https://github.com/tiangolo/fastapi
  • 教程和示例:https://fastapi.tiangolo.com/tutorial/

通过以上内容,可以快速掌握 FastAPI 的核心功能并构建高效的 API 应用。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询