Tutorials  /  Python

FastAPI mit einer relationalen Datenbank unter Ubuntu – Schritt-für-Schritt-Anleitung

Ccentron Redaktion · März 2025 ·7 Min. Lesezeit ·Python, Tutorial

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.

VM

Passende Infrastruktur bei centron

Skripte und Dienste brauchen irgendwann eine Umgebung, die durchläuft: ccloud³ VMs ab 3,12 € im Monat, stundengenau abgerechnet. Cloud Server mieten →

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:

Konsole
python3 --version

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:

Konsole
sudo apt install python3

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:

Konsole
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:

Konsole
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:

Konsole
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:

Code
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.

Konsole
sudo apt install postgresql postgresql-contrib

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

Konsole
sudo systemctl start postgresql
Konsole
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:

Konsole
pip install asyncpg sqlalchemy databases

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

Konsole
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.

Code
nano postgres_db.py

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.

Python
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.

Konsole
pip install fastapi uvicorn psycopg2

Schritt 6 - Python-Anwendung ausführen

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

Code
uvicorn main:app --reload

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.

JSON
{
  "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.

Jetzt 200 € Guthaben sichern

Testen Sie Ihr Setup auf ccloud³

Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.

centron Redaktion Technische Redaktion

Das Redaktionsteam von centron schreibt Anleitungen aus dem Betriebsalltag: getestet auf unserer eigenen Plattform, betrieben im Rechenzentrum in Hallstadt bei Bamberg.

Kategorie Python
Teilen
Noch offene Fragen?

Unser Team hilft Ihnen bei Ihrem konkreten Setup weiter – von Menschen, die die Plattform selbst betreiben.

War dieses Tutorial hilfreich?

Ihre Antwort wird anonym gespeichert und hilft uns, die Tutorials zu verbessern.

Kommentare

Noch keine Kommentare – stellen Sie die erste Frage zu diesem Tutorial.

Zum Kommentieren anmelden

Kommentare stehen centron-Kunden offen. Melden Sie sich in Ihrem Konto an, um eine Frage zu diesem Tutorial zu stellen.

Weiterlesen

Das könnte Sie auch interessieren

Jetzt kostenlos anfangen

Melden Sie sich an und erhalten Sie in den ersten 60 Tagen ein Guthaben von 200 € bei centron.

Dieses Werbeangebot gilt nur für neue Konten. Angebot ausschließlich für Gewerbetreibende.

Jetzt loslegen Sales kontaktieren