我已经有一段时间没有机会构建一些简单、有趣和现代的东西了。到 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中文网其他相关文章!

可以使用多种方法在Python中连接两个列表:1.使用 操作符,简单但在大列表中效率低;2.使用extend方法,效率高但会修改原列表;3.使用 =操作符,兼具效率和可读性;4.使用itertools.chain函数,内存效率高但需额外导入;5.使用列表解析,优雅但可能过于复杂。选择方法应根据代码上下文和需求。

有多种方法可以合并Python列表:1.使用 操作符,简单但对大列表不内存高效;2.使用extend方法,内存高效但会修改原列表;3.使用itertools.chain,适用于大数据集;4.使用*操作符,一行代码合并小到中型列表;5.使用numpy.concatenate,适用于大数据集和性能要求高的场景;6.使用append方法,适用于小列表但效率低。选择方法时需考虑列表大小和应用场景。

CompiledLanguagesOffersPeedAndSecurity,而interneterpretledlanguages provideeaseafuseanDoctability.1)commiledlanguageslikec arefasterandSecureButhOnderDevevelmendeclementCyclesclesclesclesclesclesclesclesclesclesclesclesclesclesclesclesclesclesandentency.2)cransportedeplatectentysenty

Python中,for循环用于遍历可迭代对象,while循环用于条件满足时重复执行操作。1)for循环示例:遍历列表并打印元素。2)while循环示例:猜数字游戏,直到猜对为止。掌握循环原理和优化技巧可提高代码效率和可靠性。

要将列表连接成字符串,Python中使用join()方法是最佳选择。1)使用join()方法将列表元素连接成字符串,如''.join(my_list)。2)对于包含数字的列表,先用map(str,numbers)转换为字符串再连接。3)可以使用生成器表达式进行复杂格式化,如','.join(f'({fruit})'forfruitinfruits)。4)处理混合数据类型时,使用map(str,mixed_list)确保所有元素可转换为字符串。5)对于大型列表,使用''.join(large_li

pythonuseshybridapprace,ComminingCompilationTobyTecoDeAndInterpretation.1)codeiscompiledtoplatform-Indepententbybytecode.2)bytecodeisisterpretedbybythepbybythepythonvirtualmachine,增强效率和通用性。

theKeyDifferencesBetnewpython's“ for”和“ for”和“ loopsare:1)” for“ loopsareIdealForiteringSequenceSquencesSorkNowniterations,而2)”,而“ loopsareBetterforConterContinuingUntilacTientInditionIntionismetismetistismetistwithOutpredefinedInedIterations.un

在Python中,可以通过多种方法连接列表并管理重复元素:1)使用 运算符或extend()方法可以保留所有重复元素;2)转换为集合再转回列表可以去除所有重复元素,但会丢失原有顺序;3)使用循环或列表推导式结合集合可以去除重复元素并保持原有顺序。


热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

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