我已經有一段時間沒有機會建造一些簡單、有趣和現代的東西了。到 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中文網其他相關文章!

pythonisehybridmodeLofCompilation和interpretation:1)thepythoninterpretercompilesourcecececodeintoplatform- interpententbybytecode.2)thepythonvirtualmachine(pvm)thenexecutecutestestestestestesthisbytecode,ballancingEaseofuseEfuseWithPerformance。

pythonisbothinterpretedAndCompiled.1)它的compiledTobyTecodeForportabilityAcrosplatforms.2)bytecodeisthenInterpreted,允許fordingfordforderynamictynamictymictymictymictyandrapiddefupment,儘管Ititmaybeslowerthananeflowerthanancompiledcompiledlanguages。

在您的知識之際,而foroopsareideal insinAdvance中,而WhileLoopSareBetterForsituations則youneedtoloopuntilaconditionismet

ForboopSareSusedwhenthentheneMberofiterationsiskNownInAdvance,而WhileLoopSareSareDestrationsDepportonAcondition.1)ForloopSareIdealForiteratingOverSequencesLikelistSorarrays.2)whileLeleLooleSuitableApeableableableableableableforscenarioscenarioswhereTheLeTheLeTheLeTeLoopContinusunuesuntilaspecificiccificcificCondond

pythonisnotpuroly interpred; itosisehybridablectofbytecodecompilationandruntimeinterpretation.1)PythonCompiLessourceceCeceDintobyTecode,whitsthenexecececected bytybytybythepythepythepythonvirtirtualmachine(pvm).2)

concatenateListSinpythonWithTheSamelements,使用:1)operatoTotakeEpduplicates,2)asettoremavelemavphicates,or3)listcompreanspherensionforcontroloverduplicates,每個methodhasdhasdifferentperferentperferentperforentperforentperforentperfornceandordorimplications。

pythonisanterpretedlanguage,offeringosofuseandflexibilitybutfacingperformancelanceLimitationsInCricapplications.1)drightingedlanguageslikeLikeLikeLikeLikeLikeLikeLikeThonexecuteline-by-line,允許ImmediaMediaMediaMediaMediaMediateFeedBackAndBackAndRapidPrototypiD.2)compiledLanguagesLanguagesLagagesLikagesLikec/c thresst

Useforloopswhenthenumberofiterationsisknowninadvance,andwhileloopswheniterationsdependonacondition.1)Forloopsareidealforsequenceslikelistsorranges.2)Whileloopssuitscenarioswheretheloopcontinuesuntilaspecificconditionismet,usefulforuserinputsoralgorit


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

WebStorm Mac版
好用的JavaScript開發工具

SublimeText3漢化版
中文版,非常好用

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具