我已经有一段时间没有机会构建一些简单、有趣和现代的东西了。到 2024 年年底,我偶然发现了 FastAPI,并感到很兴奋,虽然我之前在工作中构建过内部 API,但尚未创建任何面向公众的内容。
你好 FastAPI!
FastAPI 是一个现代、强大的框架,用于使用 Python 构建 API,它似乎非常适合我想要构建的内容,即用于基本足球运动员信息的 API。在决定使用“Player FC API”之前,我最初将其称为“Jugador FC”。
配置环境。
开始之前,请确保满足以下要求:
AWS CDK
码头工人
Python 3.12.7
创建项目
在您的计算机上创建一个目录。将其命名为 player_fc_fastapi_app,在此目录中创建以下子目录:
应用程序
包含所有FastAPI代码
dynamo_db_local
包含一个 python 脚本,用于创建 Amazon DynamoDB 表的本地版本
iac
包含用于在 AWS 中创建资源的堆栈文件
我通过提供您可以运行的命令来简化以下操作以节省时间:
项目目录结构现在应如下所示:
设置Python环境
设置 Amazon DynamoDB Local
。
dynamo_db_local 目录并创建一个 create_ddb_table.py 文件,使用以下代码填充该文件:
使用此代码,您可以在本地 DynamoDB 实例中创建一个表。运行代码片段。 FastAPI开发
现在我们已经启动并运行了
DynamoDB目录并创建两个文件:main.py 和requirements。 txt.
使用以下内容填充requirements.txt:
创建以下子目录:
让我们使用 Pydantic 创建几个模型,我们将使用 Player 和 UpdatePlayer 模型来定义我们可以添加或修改的玩家信息的数据结构。
在 models 子目录中,创建一个空的 __init__.py 文件和一个名为players.py 的文件,并填充以下代码:
在routers
子目录中,创建一个空的__init__.py文件和一个名为players.py的文件,并填充以下代码:创建一个空的 __init__.py 文件会将文件夹变成 Python 包。
在
app试驾 是时候进行快速测试了,确保您位于 app
目录中并运行以下命令来启动
现在我们的应用程序已启动并运行,导航至
http://127.0.0.1:8000/docs/
让我们尝试添加一个玩家。选择
POST /players按钮并使用以下有效负载添加世界上最好的玩家“Vinícius Júnior”:
以下是每个 API 操作的实际效果。
使用 AWS CDK v2 进行部署
现在我们已经可以在本地运行和测试我们的应用程序了,是时候在 AWS 上部署我们的应用程序了。我们将使用 AWS CDK v2。修改子目录中的requirements.txt文件,添加以下行:
让我们定义一个 DynamoDB 表、Lambda 函数和 Lambda 函数 url。在当前的 iac 目录中,您需要导航到另一个子目录 (iac
)。打开 iac_stack.py 文件,将 CDK 堆栈的内容替换为以下代码:在启动部署之前,我们还有最后一步,将 app/routers 目录下的players.py 文件中的 local_development: bool 标记设置为
False激活
使用 cdk 部署命令部署应用程序。
部署完成后,您将在终端输出中看到一个函数 URL,这是您在 AWS 上的 API 端点。
- 使用函数 URL 测试所有端点,就像我们在本地测试期间所做的那样。添加玩家后,就可以验证我们的玩家数据是否持续存在或消失在以太中。
- 验证一切正常:
- 前往AWS 管理控制台
- 导航到DynamoDB
- 找到玩家桌子
探索表格项目
?
重要:不要忘记清理资源!当不再需要时,您可以运行 cdk destroy 命令删除所有创建的 AWS 资源。 <script></script>我们从本地 FastAPI 开发到 AWS 上的无服务器部署的旅程就结束了。<script></script> <script></script> <script></script>以上是无服务器 FastAPI 开发:在 AWS 上构建 Player FC API的详细内容。更多信息请关注PHP中文网其他相关文章!

Linux终端中查看Python版本时遇到权限问题的解决方法当你在Linux终端中尝试查看Python的版本时,输入python...

本文解释了如何使用美丽的汤库来解析html。 它详细介绍了常见方法,例如find(),find_all(),select()和get_text(),以用于数据提取,处理不同的HTML结构和错误以及替代方案(SEL)

Python 对象的序列化和反序列化是任何非平凡程序的关键方面。如果您将某些内容保存到 Python 文件中,如果您读取配置文件,或者如果您响应 HTTP 请求,您都会进行对象序列化和反序列化。 从某种意义上说,序列化和反序列化是世界上最无聊的事情。谁会在乎所有这些格式和协议?您想持久化或流式传输一些 Python 对象,并在以后完整地取回它们。 这是一种在概念层面上看待世界的好方法。但是,在实际层面上,您选择的序列化方案、格式或协议可能会决定程序运行的速度、安全性、维护状态的自由度以及与其他系

Python的statistics模块提供强大的数据统计分析功能,帮助我们快速理解数据整体特征,例如生物统计学和商业分析等领域。无需逐个查看数据点,只需查看均值或方差等统计量,即可发现原始数据中可能被忽略的趋势和特征,并更轻松、有效地比较大型数据集。 本教程将介绍如何计算平均值和衡量数据集的离散程度。除非另有说明,本模块中的所有函数都支持使用mean()函数计算平均值,而非简单的求和平均。 也可使用浮点数。 import random import statistics from fracti

本文比较了Tensorflow和Pytorch的深度学习。 它详细介绍了所涉及的步骤:数据准备,模型构建,培训,评估和部署。 框架之间的关键差异,特别是关于计算刻度的

该教程建立在先前对美丽汤的介绍基础上,重点是简单的树导航之外的DOM操纵。 我们将探索有效的搜索方法和技术,以修改HTML结构。 一种常见的DOM搜索方法是EX

本文讨论了诸如Numpy,Pandas,Matplotlib,Scikit-Learn,Tensorflow,Tensorflow,Django,Blask和请求等流行的Python库,并详细介绍了它们在科学计算,数据分析,可视化,机器学习,网络开发和H中的用途

本文指导Python开发人员构建命令行界面(CLIS)。 它使用Typer,Click和ArgParse等库详细介绍,强调输入/输出处理,并促进用户友好的设计模式,以提高CLI可用性。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

Atom编辑器mac版下载
最流行的的开源编辑器

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

禅工作室 13.0.1
功能强大的PHP集成开发环境

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器