Introduzione
FastAPI è rapidamente diventato popolare come framework web high-performance e facile da usare per la creazione di API in Python. Quando abbinato a una database relazionale, FastAPI può essere utilizzato per creare applicazioni potenti e scalabili. Questo guide vi guiderà attraverso il processo di impostazione di un’applicazione FastAPI con una database relazionale su un sistema Ubuntu 24.04. Copriremo tutto, dall’installazione delle tool necessarie alla configurazione della database e alla creazione di endpoint API.
Usare FastAPI con il Database PostgreSQL
- Impostazione dell’Ambiente Python
- Creare e attivare l’ambiente virtuale
- Installare e configurare PostgreSQL
- Creare applicazione FastAPI
- Installare le librerie richieste
- Eseguire l’applicazione Python
- Testare gli endpoint dell’applicazione FastAPI
Prerequisiti
Prima di seguire le istruzioni di questo tutorial, è necessario:
-
Un server che esegue Ubuntu insieme ad un utente non root che ha privilegi di sudo e un firewall attivo. Per istruzioni su come impostare questo setup, scegliere la propria distribuzione dalla questa lista e seguire il nostro guide di installazione iniziale del server. Assicurarsi di lavorare con una versione supportata di Ubuntu.
-
Conoscenza della riga di comando di Linux. Per un approcio o un aggiornamento alla riga di comando, puoi visitare questo guide sulla primavera di Linux.
-
Eseguire
sudo apt-get update
nel terminale Ubuntu per assicurarsi che il tuo sistema abbia le versioni più recenti e gli aggiornamenti di sicurezza per il software disponibile dai repository configurati nel tuo sistema.
Queste istruzioni sono valide per le versioni più recenti di Ubuntu: Ubuntu 24.04, Ubuntu 22.04 e Ubuntu 20.04. Se state utilizzando una versione di Ubuntu <= 18.04, vi consigliamo di aggiornare a una versione più recente poiché Ubuntu non fornisce più supporto per queste versioni. Questo insieme di guide vi aiuterà nell’aggiornamento della versione di Ubuntu.
Step 1 – Configurazione dell’ambiente Python
Ubuntu 24.04 include Python 3 come componente predefinito. Apri il terminale e esegui il seguente comando per controllare la presenza di Python 3:
Se Python 3 è già installato sulla vostra macchina, questo comando restituirà la versione attuale dell’installazione di Python 3. In caso contrario, è possibile eseguire il seguente comando per installare Python 3:
Successivamente, devi installare i programmi di installazione dei pacchetti pip
e dev
sul tuo sistema. Esegui il seguente comando nel terminale:
In questo tutorial, userremo PostgreSQL come nostra database relazionale. Per interagire con il database PostgreSQL, è necessario installare libpq-dev
utilizzando il seguente comando:
Step 2 – Crea e attiva il contesto virtuale
Se state utilizzando una versione di Ubuntu < 24.04, non è necessario creare un contesto virtuale. Puoi saltare al prossimo passo.
Il passo successivo consiste nel creare un contesto virtuale all’interno dell’installazione di Ubuntu per isolare i pacchetti Python dalla vostra environment di sistema. Per fare questo, andate nel vostro directory di lavoro e eseguite il seguente insieme di comandi:
Questo comando creerà un nuovo contesto virtuale in una directory chiamata fastapi-env
. Avrà il suo insieme dedicato di pacchetti Python, isolato da altri progetti.
Per assicurarvi che i pacchetti che installate da questo momento in poi siano installati in questo ambiente isolato, devi attivarlo eseguendo:
Al momento dell’esecuzione, noterai che il prompt del terminale è prefissato con il nome del tuo contesto virtuale, come questo:
Output(fastapi-env) ubuntu@user:
Step 3 – Installare e configurare PostgreSQL
La prossima step è installare PostgreSQL (o qualsiasi altra base di dati relazionale sia tuo preferita).
Ora, è il momento di avviare e abilitare il servizio di PostgreSQL all’interno dell’ambiente virtuale.
Puoi controllare lo stato del servizio di PostgreSQL eseguendo sudo systemctl status postgresql
. Una volta abilitato, il servizio viene avviato automaticamente all’avvio del sistema.
Per installare e utilizzare PostgreSQL con FastAPI, devi installare un paio di cose:
asyncpg
: Questo è un driver PostgreSQL asincrono che consente a FastAPI di interagire con una base dati PostgreSQL.SQLAlchemy
: Questo è un strumento ORM che ti aiuta a gestire i schemi di database e le query invece di scrivere SQL grezzo.databases
: Questa è una libreria di database per operazioni asincrone richieste daSQLAlchemy
per lavorare asincronicamente con FastAPI.
Per installare queste cose, esegui il seguente comando integrato:
Prossimo, crea una base dati Postgres e un utente con i privilegi necessari.
Step 4 – Creare applicazione Python di esempio
Devi avere un’applicazione Python esecutabile che accedere alla tua database tramite FastAPI. Se non hai una applicazione Python in esecuzione, puoi crearne una rapidamente seguendo questi passaggi:
Crea un nuovo file Python denominato postgres_db.py
nella directory del tuo progetto.
Nell’editor di testo, scriverai la logica per creare una connessione al database e creare una tabella all’interno del database. In questo esempio, creiamo una connessione al database PostgreSQL usando il pacchetto databases
e definiamo la struttura di una tabella books
usando SQLAlchemy
.
Salva e chiudi il file.
Successivamente, crea un main.py
nella stessa directory.
Scrivi la logica principale dell’applicazione in questo file:
Questo codice utilizza FastAPI per scrivere nuovi record di libri nel database PostgreSQL e recuperare la collezione di libri da esso.
Step 5 – Installare le Librerie Necessarie
Nella tua applicazione Python, stai facendo riferimento a vari pacchetti e librerie. Prima di eseguire l’applicazione, assicurati di installare le librerie necessarie.
Step 6 – Esegui Applicazione Python
Ora è il momento di eseguire l’applicazione che hai creato.
uvicorn
è un Server Gateway Interface Asincrono (ASGI) che viene utilizzato per servire le applicazioni FastAPI. Utilizzare uvicorn
è il metodo preferito per eseguire un’applicazione FastAPI, poiché FastAPI è un framework web asincrono di per sé.
Se il comando precedente viene eseguito senza incontrare errori, allora vedrai un output simile a quello seguente:
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.
In un browser web, naviga per http://127.0.0.1:8000
per visualizzare l’output della query.
Step 7 [OPZIONALE] – Testare gli Endpoint
Puoi testare gli endpoint definiti nel tuo file main.py
(cioè POST
e GET
) inviando richieste HTTP al server in esecuzione su http://127.0.0.1:8000
.
Allo stesso modo, puoi fare una chiamata GET
allo stesso server per recuperare l’elenco dei libri presenti nel tuo database Postgres.
Conclusione
In questo tutorial, avete creato un semplice applicazione FastAPI che interagisce con una database PostgreSQL. Questi passaggi sono utili anche per le applicazioni AI, soprattutto quando è necessario costruire una web API per interagire con i tuoi modelli AI o gestire i dati relativi ai tuoi processi AI. Con questo fondamento in posizione, ora potete costruire e ampliare i vostri progetti FastAPI.
Stay tuned per ulteriori articoli su come lavorare con FastAPI.
Source:
https://www.digitalocean.com/community/tutorials/use-fastapi-with-relationaldb-ubuntu