FastAPI mit einer relationalen Datenbank unter Ubuntu 24.04

FastAPI hat sich schnell als leistungsstarkes, benutzerfreundliches Web-Framework für den Aufbau von APIs mit Python etabliert. In Kombination mit einer relationalen Datenbank kann FastAPI zur Erstellung leistungsfähiger, skalierbarer Anwendungen verwendet werden. Diese Anleitung führt Sie durch den Prozess der Einrichtung einer FastAPI-Anwendung mit einer relationalen Datenbank auf einer Ubuntu 24.04-Maschine. Wir behandeln alles von der Installation der erforderlichen Tools bis zur Konfiguration der Datenbank und der Erstellung von API-Endpunkten.

Voraussetzungen

Bevor Sie die Schritte in diesem Tutorial befolgen, benötigen Sie:

  • Einen Server mit Ubuntu sowie einen Nicht-Root-Benutzer mit sudo-Berechtigungen und einer aktiven Firewall. Stellen Sie sicher, dass Sie mit einer unterstützten Version von Ubuntu arbeiten.
  • Grundkenntnisse in der Nutzung der Linux-Kommandozeile.
  • Führen Sie sudo apt-get update im Ubuntu-Terminal aus, um sicherzustellen, dass Ihr System die neuesten Versionen und Sicherheitsupdates der in Ihrem System konfigurierten Software-Repositorys enthält.

Diese Anleitung ist gültig für die neuesten Ubuntu-Versionen: Ubuntu 24.04, Ubuntu 22.04 und Ubuntu 20.04. Falls Sie eine Ubuntu-Version ≤ 18.04 verwenden, empfehlen wir Ihnen, auf eine aktuellere Version zu aktualisieren, da Ubuntu diese Versionen nicht mehr unterstützt.

Schritt 1 – Einrichtung der Python-Umgebung

Ubuntu 24.04 wird standardmäßig mit Python 3 ausgeliefert. Öffnen Sie das Terminal und führen Sie den folgenden Befehl aus, um die Installation von Python 3 zu überprüfen:

Falls Python 3 bereits auf Ihrem System installiert ist, gibt dieser Befehl die aktuelle Version Ihrer Python 3-Installation aus. Falls Python 3 nicht installiert ist, können Sie den folgenden Befehl ausführen:

Als Nächstes müssen Sie pip und die Dev-Paketinstaller auf Ihrem System installieren. Führen Sie dazu den folgenden Befehl im Terminal aus:

 sudo apt install python3-pip python3-dev

In diesem Tutorial verwenden wir PostgreSQL als relationale Datenbank. Um mit der PostgreSQL-Datenbank zu interagieren, müssen Sie das Paket libpq-dev installieren. Nutzen Sie dazu den folgenden Befehl:


 sudo apt install libpq-dev


Schritt 2 – Erstellung und Aktivierung der virtuellen Umgebung

Falls Sie eine Ubuntu-Version < 24.04 verwenden, müssen Sie keine virtuelle Umgebung erstellen und können diesen Schritt überspringen.

Der nächste Schritt besteht darin, eine virtuelle Umgebung in Ihrer Ubuntu-Installation zu erstellen, um Python-Pakete von der Systemumgebung zu isolieren. Wechseln Sie dazu in Ihr Arbeitsverzeichnis und führen Sie den folgenden Befehl aus:

 python3 -m venv fastapi-env

Dieser Befehl erstellt eine neue virtuelle Umgebung in einem Verzeichnis mit dem Namen fastapi-env. Dieses Verzeichnis enthält eine eigene Sammlung von Python-Paketen, die von anderen Projekten isoliert sind.

Damit alle künftig installierten Pakete in dieser isolierten Umgebung gespeichert werden, müssen Sie die virtuelle Umgebung mit folgendem Befehl aktivieren:

 source fastapi-env/bin/activate

Nach der Ausführung wird das Terminal-Prompt durch den Namen der virtuellen Umgebung ergänzt, zum Beispiel:

Ausgabe

(fastapi-env) ubuntu@user:

Schritt 3 – PostgreSQL installieren und einrichten

Der nächste Schritt besteht darin, PostgreSQL (oder eine andere relationale Datenbank Ihrer Wahl) zu installieren.

 sudo apt install postgresql postgresql-contrib

Nun ist es an der Zeit, den PostgreSQL-Dienst zu starten und zu aktivieren.


 sudo systemctl start postgresql


 sudo systemctl enable postgresql

Sie können den Status des PostgreSQL-Dienstes überprüfen, indem Sie sudo systemctl status postgresql ausführen. Sobald der Dienst aktiviert ist, startet er automatisch beim Systemstart.

Um PostgreSQL mit FastAPI zu nutzen, müssen Sie einige Pakete installieren:

  • asyncpg: Ein asynchroner PostgreSQL-Treiber, der es FastAPI ermöglicht, mit einer PostgreSQL-Datenbank zu interagieren.
  • SQLAlchemy: Ein ORM-Tool, mit dem Sie Datenbankschemata und Abfragen in Python-Code verwalten können, anstatt rohe SQL-Abfragen zu schreiben.
  • databases: Eine Bibliothek für asynchrone Datenbankoperationen, die für SQLAlchemy erforderlich ist, um asynchron mit FastAPI zu arbeiten.

Um diese zu installieren, führen Sie folgenden Befehl aus:

 pip install asyncpg sqlalchemy databases

Erstellen Sie als nächstes eine PostgreSQL-Datenbank und einen Benutzer mit den erforderlichen Berechtigungen.


 
sudo -u postgres psql
CREATE DATABASE ;
CREATE ROLE  WITH PASSWORD '';
GRANT ALL PRIVILEGES ON DATABASE  TO ;
exit 


Schritt 4 – Beispiel einer Python-Anwendung erstellen

Sie benötigen eine ausführbare Python-Anwendung, die über FastAPI auf Ihre Datenbank zugreift. Falls Sie noch keine Python-Anwendung haben, können Sie schnell eine erstellen, indem Sie die folgenden Schritte ausführen:

Erstellen Sie eine neue Python-Datei mit dem Namen postgres_db.py in Ihrem Projektverzeichnis.

Schreiben Sie in den Texteditor die Logik für die Verbindung zur Datenbank und die Erstellung einer Tabelle. In diesem Beispiel erstellen wir eine Verbindung zur PostgreSQL-Datenbank mit der databases-Bibliothek und definieren die Struktur einer books-Tabelle mit SQLAlchemy.


 
from databases import Database
from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String, Float

DB_URL = "postgresql://username:password@localhost/user_db"

database = Database(DB_URL)
metadata = MetaData()

books = Table (
  "books",
  metadata,
  Column("id", Integer, primary_key=True, index=True),
  Column("title", String, index=True),
  Column("author", String, index=True),
  Column("price", Float),
)

engine = create_engine(DB_URL)
metadata.create_all(engine)


Schritt 5 – Erforderliche Bibliotheken installieren

In Ihrer Python-Anwendung werden verschiedene Bibliotheken und Pakete verwendet. Bevor Sie die Anwendung ausführen, stellen Sie sicher, dass Sie die erforderlichen Bibliotheken installiert haben.


 pip install fastapi uvicorn psycopg2


Schritt 6 – Python-Anwendung ausführen

Nun ist es an der Zeit, die erstellte Anwendung auszuführen.

uvicorn ist eine Asynchronous Server Gateway Interface (ASGI), die verwendet wird, um eine FastAPI-Anwendung bereitzustellen. Da FastAPI selbst ein asynchrones Web-Framework ist, ist die Nutzung von uvicorn die bevorzugte Methode.

Falls der obige Befehl ohne Fehler ausgeführt wird, sehen Sie eine Ausgabe ähnlich dieser:

Ausgabe

INFO:     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.

Öffnen Sie einen Webbrowser und navigieren Sie zu http://127.0.0.1:8000, um die Abfrageergebnisse zu sehen.

Schritt 7 [OPTIONAL] – Endpunkte testen

Sie können die in Ihrer main.py definierten Endpunkte (d. h. POST und GET) testen, indem Sie HTTP-Anfragen an den Server unter http://127.0.0.1:8000 senden.

 
{
  "title": "The Great Gatsby",
  "author": "F. Scott Fitzgerald",
  "price": 10.99
}

Ebenso können Sie eine GET-Anfrage an denselben Server senden, um die Liste der in Ihrer PostgreSQL-Datenbank gespeicherten Bücher abzurufen.

Fazit

In diesem Tutorial haben Sie den Prozess der Einrichtung einer einfachen FastAPI-Anwendung kennengelernt, die mit einer PostgreSQL-Datenbank interagiert. Diese Schritte sind auch für KI-Anwendungen von Vorteil, insbesondere wenn Sie eine Web-API erstellen müssen, um mit Ihren KI-Modellen zu interagieren oder Daten im Zusammenhang mit Ihren KI-Prozessen zu verwalten.

Mit dieser Grundlage können Sie nun Ihre FastAPI-Projekte weiterentwickeln und ausbauen.

Bleiben Sie dran für weitere Artikel zur Arbeit mit FastAPI.

Quelle: digitalocean.com

Jetzt 200€ Guthaben sichern

Registrieren Sie sich jetzt in unserer ccloud³ und erhalten Sie 200€ Startguthaben für Ihr Projekt.

Das könnte Sie auch interessieren:

Textdatei in Java lesen

Die Rolle von Warps in der parallelen Verarbeitung

AI/ML, Tutorial
GPUs und Parallele Verarbeitung: Verständnis von Warps GPUs werden als parallele Prozessoren beschrieben, da sie Aufgaben gleichzeitig ausführen können. Mehrere Verarbeitungseinheiten unterteilen Aufgaben in kleinere Teilaufgaben, führen sie gleichzeitig aus…