引言
FastAPI 迅速受到歡迎,成為一個高性能、易於使用的 Python 建立的 API 網頁框架。當與關係型數據庫搭配時,FastAPI 可以用來創建強大、可擴展的应用程序。本指南將带你通過在 Ubuntu 24.04 機器上設定帶有關係型數據庫的 FastAPI 應用程序的過程。我們將涵蓋從安裝必要的工具到配置數據庫和創建 API 端點的一切。
使用 PostgreSQL 數據庫與 FastAPI
先決條件
在跟進本教程的步驟之前,您需要:
-
一台運行Ubuntu的伺服器,以及一個具有sudo權限的非root用戶和一個活躍的防火牆。要了解如何設定此環境,請從此清單中選擇您的的分發版,並遵循我們的初始伺服器設定指南。請確保使用受支持的Ubuntu版本。
-
熟悉 Linux 命令行。若要了解更多或重温命令行的基礎,您可以閱讀此篇Linux 命令行简介指南。
-
在 Ubuntu 終端機中運行
sudo apt-get update
,確保您的系統已經有最新的版本和安全性更新,這些软件是由您系統上配置的存放庫所提供。
這些指示對於最新版本的 Ubuntu 是有效的:Ubuntu 24.04、Ubuntu 22.04 和 Ubuntu 20.04。如果你正在使用 Ubuntu 版本 <= 18.04,我們建議你升級到更新的版本,因為 Ubuntu 不再為這些版本提供支援。這份指南將幫助你升級 Ubuntu 版本。
步驟 1 – Python 環境設定
Ubuntu 24.04 默認搭載 Python 3。開啟終端並運行以下命令以確定 Python 3 是否已安裝:
如果 Python 3 已經在你的電腦上安裝,這個命令將返回 Python 3 的當前版本。如果尚未安裝,你可以運行以下命令以安裝 Python 3:
接下來,你需要在你的系統上安裝 pip
和 dev
套件安裝器。在終端中運行以下命令:
在本教程中,我們將使用 PostgreSQL 作為我們的關係型數據庫。要與 PostgreSQL 數據庫進行互動,您需要使用以下命令安装 libpq-dev
:
步驟 2 – 創建和啟用虛擬環境
如果您正在使用 Ubuntu 版本 < 24.04,則不需要創建虛擬環境。您可以跳到 下一步。
下一步是者在您的 Ubuntu 安裝中創建一個虛擬環境,以將 Python 包與您的系統環境隔離。为此,請转到您的工作目录並運行以下命令集:
此命令将在 named fastapi-env
的目錄中創建一個新的虛擬環境。它將具有自己的专用 Python 包,与其他項目隔離。
為了確保從此刻起您安裝的包 Inside this isolated environment, you need to activate it by running:
运行后,您會發現終端提示符前缀有您的虛擬環境名稱,如下所示:
Output(fastapi-env) ubuntu@user:
步驟3 – 安裝和設定PostgreSQL
下一步是安裝PostgreSQL(或您選擇的關聯式資料庫)。
現在,是时候在您的虛擬環境中開始並啟用PostgreSQL服務。
您可以通過運行sudo systemctl status postgresql
來檢查PostgreSQL服務的狀態。一旦服務被啟用,它會在系統啟動時自動開始。
要與FastAPI一起安裝和使用PostgreSQL,您需要安裝一些東西:
asyncpg
:這是個異步PostgreSQL驅動程式,讓FastAPI能夠與PostgreSQL數據庫進行互動。SQLAlchemy
:這是一個ORM工具,幫助您管理數據庫結構和查詢作為Python代碼,而不是撰寫原始SQL。databases
:這是個用於異步操作的數據庫庫,是SQLAlchemy
與FastAPI異步工作的必要條件。
要安裝這些,請運行以下合併命令:
接下來,創建一個具有必需權限的Postgres數據庫和用戶。
步驟4 – 創建示例Python應用程序
你需要一個可以通過FastAPI訪問你數據庫的可執行Python應用程序。如果你還沒有運行的Python應用程序,你可以通過以下步驟快速創建一個:
在你的項目目錄中創建一個命名為postgres_db.py
的新Python文件。
在文字編輯器中,你將寫下創建數據庫連接并在數據庫內創建表的邏輯。在這個示例中,我們使用databases
包創建一個PostgreSQL數據庫連接,並使用SQLAlchemy
定義books
表的結構。
保存並關閉文件。
接下來,在同一目錄中創建一個main.py
。
在這個文件中寫下你的應用程序主要邏輯:
這段代碼使用FastAPI將新的書籍条目寫入PostgreSQL數據庫,並從其中获取書本集合。
步驟5 – 安装必需的庫
在你的Python應用程序中,你正在引用各種庫和包。在運行應用程序之前,請確保已經安裝了必需的庫。
步驟6 – 運行Python應用程序
現在,是時候執行您創建的應用了。
uvicorn
是一個異步伺服器網關接口(ASGI),用於提供 FastAPI 應用服務。由於 FastAPI 本身是一個異步網絡框架,使用 uvicorn
是運行 FastAPI 應用的首選方式。
如果上述命令執行時未遇到錯誤,您將會看到類似如下的輸出:
OutputINFO: Will watch for changes in these directories: ['/path/to/your/project']
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO: Started reloader process [XXXX] using StatReload
INFO: Started server process [YYYY]
INFO: Waiting for application startup.
INFO: Application startup complete.
在網頁瀏覽器中,導航至 http://127.0.0.1:8000
來查看查詢輸出結果。
步驟 7 [可選] – 測試端點
您可以通過向運行在 http://127.0.0.1:8000
的伺服器發送 HTTP 請求來測試您在 main.py
中定義的端點(即 POST
和 GET
)。
同樣,您可以對同一伺服器發出 GET
請求,以檢索您 Postgres 數據庫中現有的書籍列表。
結論
在這個教程中,您將通過設定一個簡單的FastAPI應用程序,該應用程序與PostgreSQL數據庫進行互動。這些步驟對AI應用程序也很有益,特別是當您需要建立一個Web API來與您的AI模型互動或管理與您的AI流程相關的数据時。有了這個基礎,您現在可以建立和擴展您的FastAPI項目。
請密切关注我們對如何使用FastAPI的更多文章。
Source:
https://www.digitalocean.com/community/tutorials/use-fastapi-with-relationaldb-ubuntu