news 2026/6/10 18:31:21

FastAPI 学习指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
FastAPI 学习指南

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 应用。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 1:58:35

论文AI率从90%降到10%:亲测有效的降AI工具实测

论文AI率从90%降到10%:亲测有效的降AI工具实测 92%。这是我用DeepSeek辅助写完初稿后,知网检测给我的AI率。当时离答辩只剩两周,我整个人都懵了。 先说结论:最后用比话降AI(www.bihuapass.com)把AI率从92%…

作者头像 李华
网站建设 2026/6/10 13:08:31

2026毕业论文降AI攻略:嘎嘎降帮你轻松过知网AIGC检测

2026毕业论文降AI攻略:嘎嘎降帮你轻松过知网AIGC检测 答辩前三天,导师突然发来消息:“论文AI率超了,重新改。” 我当时整个人都懵了。辛辛苦苦写了三个月的毕业论文,知网AIGC检测报告显示AI率62.7%。学校要求是20%以…

作者头像 李华
网站建设 2026/6/10 15:07:06

2026年6款降AI率工具实测:嘎嘎降双引擎到底强在哪

2026年6款降AI率工具实测:嘎嘎降双引擎到底强在哪 99.5%。 这是知网给我论文的AI率。我盯着屏幕愣了足足三分钟,明明是自己一字一句敲出来的综述,怎么就成了AI写的? 后来我才知道,现在的AIGC检测不只看用词&#xf…

作者头像 李华
网站建设 2026/6/10 2:01:09

2026年最火的AI模型测试平台:专业测试从业者的实战指南

AI模型测试的崛起与行业需求 2026年,人工智能(AI)已渗透至金融、医疗、自动驾驶等关键领域,模型复杂性激增,测试需求从传统功能验证转向全生命周期管理。软件测试从业者面临新挑战:如何确保AI模型的准确性…

作者头像 李华
网站建设 2026/6/10 10:54:43

寒假集训2——队列

1.P1996 约瑟夫问题 题目描述 n 个人围成一圈,从第一个人开始报数,数到 m 的人出列,再由下一个人重新从 1 开始报数,数到 m 的人再出圈,依次类推,直到所有的人都出圈,请输出依次出圈人的编号。 注意&…

作者头像 李华
网站建设 2026/6/10 10:57:02

不同场景使用不同进制表示的庖丁解牛

“不同场景使用不同进制表示” 是计算机系统为 平衡人类可读性与机器效率 而设计的分层抽象策略。它不是随意选择,而是 在特定上下文中,某种进制能最高效地传递信息、减少错误、提升性能。一、核心原理:进制是信息的“压缩格式”进制基数信息…

作者头像 李华