我已經有一段時間沒有機會建造一些簡單、有趣和現代的東西了。到 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的statistics模塊提供強大的數據統計分析功能,幫助我們快速理解數據整體特徵,例如生物統計學和商業分析等領域。無需逐個查看數據點,只需查看均值或方差等統計量,即可發現原始數據中可能被忽略的趨勢和特徵,並更輕鬆、有效地比較大型數據集。 本教程將介紹如何計算平均值和衡量數據集的離散程度。除非另有說明,本模塊中的所有函數都支持使用mean()函數計算平均值,而非簡單的求和平均。 也可使用浮點數。 import random import statistics from fracti

本文比較了Tensorflow和Pytorch的深度學習。 它詳細介紹了所涉及的步驟:數據準備,模型構建,培訓,評估和部署。 框架之間的關鍵差異,特別是關於計算刻度的

本文討論了諸如Numpy,Pandas,Matplotlib,Scikit-Learn,Tensorflow,Tensorflow,Django,Blask和請求等流行的Python庫,並詳細介紹了它們在科學計算,數據分析,可視化,機器學習,網絡開發和H中的用途

本文指導Python開發人員構建命令行界面(CLIS)。 它使用Typer,Click和ArgParse等庫詳細介紹,強調輸入/輸出處理,並促進用戶友好的設計模式,以提高CLI可用性。

在使用Python的pandas庫時,如何在兩個結構不同的DataFrame之間進行整列複製是一個常見的問題。假設我們有兩個Dat...

文章討論了虛擬環境在Python中的作用,重點是管理項目依賴性並避免衝突。它詳細介紹了他們在改善項目管理和減少依賴問題方面的創建,激活和利益。


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

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

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

Atom編輯器mac版下載
最受歡迎的的開源編輯器

記事本++7.3.1
好用且免費的程式碼編輯器

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