Einführung
Beim Entwickeln von Python-Anwendungen zeichnet sich FastAPI durch eine hohe Leistung und einfache Nutzung aus. Es bietet Geschwindigkeit, Einfachheit und Unterstützung für asynchrone Programmierung, was es zu einer idealen Wahl für die Entwicklung modern scalierbarer Anwendungen macht.
In diesem Lehrgang werden wir Ihnen Schritte durchlaufen, um eine FastAPI-Anwendung mit einer NoSQL-Datenbank einzurichten. Bei der Speicherung und Verwaltung von Daten bieten NoSQL-Datenbanken Flexibilität und Skalierbarkeit, was sie zu einer großen Wahl für Anwendungen macht, die vielfältige und komplexe Datenstrukturen verarbeiten müssen.
Voraussetzungen
Bevor Sie beginnen, müssen Sie sicherstellen, dass Sie folgendes haben:
- Ein Server, der Ubuntu ausführt, zusammen mit einem nicht-root-Benutzer mit sudo-Berechtigungen und einer aktiven Firewall. Wenn Sie Hilfe benötigen, um dies einzurichten, wählen Sie Ihre Distribution von dieser Liste aus und folgen unserem Leitfaden für die Einrichtung des initialen Servers. Stellen Sie sicher, dass Sie mit einer unterstützten Version von Ubuntu arbeiten.
-
Vertrautheit mit der Linux-Kommandozeile. Wenn du eine Einführung oder einen Erinnerungskurs in der Kommandozeile brauchst, kannst du diese Anleitung über Linux-Kommandozeile-Primer aufrufen.
-
Führe
sudo apt-get update
im Ubuntu-Terminal aus, um sicherzustellen, dass dein System die neuesten Versionen und Sicherheitsupdates für die Software erhält, die aus den Repositories auf deinem System konfiguriert ist.
Diese Anweisungen gelten für die neuesten Versionen von Ubuntu: Ubuntu 24.04, Ubuntu 22.04 und Ubuntu 20.04. Wenn Sie Ubuntu-Version <= 18.04 verwenden, empfehlen wir Ihnen, auf eine neuere Version zu aktualisieren, da Ubuntu keine Unterstützung mehr für diese Versionen anbietet. Dieses Sammelband von Anleitungen wird Ihnen beim Upgrade Ihrer Ubuntu-Version helfen.
Schritt 1 – Einrichten des Python-Umgebens auf Ihrem Rechner
Im Verlauf dieses Leitfadens verwenden wir das Paket python3
, um Befehle auszuführen. Die neuesten Ubuntu-Versionen verfügen über eine Python 3-Installation, um die Installation zu verifizieren, führen Sie den folgenden Befehl aus:
Wenn dies zu einem Fehler führt, können Sie das Paket installieren oder neu installieren, indem Sie die folgende Befehlsausführung durchführen:
Nächstes müssen Sie pip
installieren, um Python-Pakete und ihre Abhängigkeiten sicher zu installieren.
Schritt 2 – Erstellen eines virtuellen Umgebens
Wenn Sie Ubuntu-Version < 24.04 verwenden, müssen Sie kein virtuelles Umfeld erstellen, aber es ist eine gute Praxis, die Abhängigkeiten Ihres Projekts zu isolieren.
Ab Python 3.11 und pip 22.3 gibt es eine neue PEP 668, die die Markierung von Python-Basisumgebungen als „extern verwaltet“ vorschreibt, was bedeutet, dass Sie ohne eine virtuelle Umgebung nicht erfolgreich Pakete mit pip
installieren können.
In diesem Schritt werden Sie eine virtuelle Umgebung für Ihr Projekt erzeugen, die Abhängigkeiten Ihres Projekts isoliert, um potenzielle Konflikte zwischen verschiedenen Paketversionen zu vermeiden. Führen Sie im Terminal die folgenden Befehle aus:
Dies installiert das erforderliche venv
-Paket, das zur Erstellung einer virtuellen Umgebung notwendig ist.
Dieser Befehl erstellt eine virtuelle Umgebung namens fastapi-env
innerhalb Ihres Arbeitsverzeichnisses. Um in dieser Umgebung zu arbeiten, müssen Sie sie aktivieren.
Nach erfolgreicher Ausführung sehen Sie die Befehlszeile mit folgendem Präfix:
(fastapi-env) user@machine:~$
Nun können Sie in dieser virtuellen Umgebung die erforderlichen Abhängigkeiten installieren.
Schritt 3 – Installieren von erforderlichen Bibliotheken und Paketen
In diesem Schritt werden Sie einige Pakete und Bibliotheken installieren, die erforderlich sind, um diesen Leitfaden erfolgreich fortzusetzen.
Wir beginnen mit der Installation von fastapi
, die benötigt wird, um Ihre FastAPI-Anwendung zu erstellen, und uvicorn
, das benötigt wird, um die FastAPI-Anwendung zu starten.
In diesem Leitfaden verwenden wir MongoDB als NoSQL-Datenbank. Um mit MongoDB innerhalb Ihrer FastAPI zu interagieren, müssen Sie motor
installieren, das ein asynchrones Python-Treiber für MongoDB ist.
Schritt 4 – Installieren und Einrichten von MongoDB auf Ubuntu
Um MongoDB auf Ihrem Ubuntu-Rechner zu installieren, führen Sie die folgenden Kommandos im Terminal aus:
Nach erfolgreicher Ausführung gibt dies das echo-Parameter zurück. Jetzt führen Sie schnell:
Dies stellt sicher, dass Sie die neuesten Updates erhalten, nachdem Sie die MongoDB-Schlüssel eingerichtet haben.
Der nächste Schritt besteht darin, eine openssl
-Abhängigkeit auf Ihrem System zu installieren, die für die MongoDB-Installation erforderlich ist.
Nach der Ausführung werden Sie dazu aufgefordert, Dienste neu zu starten. Nach dem Neustart installieren Sie MongoDB mit dem folgenden Befehl:
Starten und aktivieren Sie die MongoDB-Dienste:
Sie können den Status des MongoDB-Dienstes überprüfen und die Verbindung testen, indem Sie die folgenden Befehle ausführen:
Schritt 5 – FastAPI-Anwendung erstellen
Der nächste Schritt besteht darin, eine FastAPI-Anwendung zu erstellen. Erstellen Sie im Ihren Arbeitsverzeichnis ein database.py
Datei:
Dadurch wird ein leeres Texteditormenü geöffnet. Schreiben Sie Ihre Datenbankverbindungslogik hierhin.
Vorgehensweise: Nehmen wir an, dass die mycollection
von mydatabase
mit einigen Daten befüllt ist, so erstellen Sie nun eine main.py
, die die Logik Ihrer Anwendung enthält. In der folgenden FastAPI-App wird eine Datenbankverbindung mit Hilfe von database.py
hergestellt, und Routen für die AI-Voraussage definiert. Mit diesen Routen wird der Input validiert.
Schreiben Sie in der Texteditor die Logik:
Das bedeutet, dass diese Anwendung Folgendes erledigt:
- Lineares Regressionsmodell von sklearn: Dieses Modell prognostiziert ein Ausgangsdatum auf der Basis eines einzigen Eingabeparameters.
- Eingabedaten aus Pydantic-Modell: Dies definiert die erwartete Eingabestruktur für den Prediktions-Endpunkt. In diesem Fall ist es ein
float
. - MongoDB-Routen: Die Routen
/items/
undPOST /items/
ermöglichen es Ihnen, Elemente in Ihrer MongoDB-Sammlung abzurufen und einzufügen.
Schritt 6 – FastAPI-Anwendung ausführen
Um diese Anwendung erfolgreich auszuführen, müssen Sie die Libraries und Packages, die in der Anwendung verwendet werden, installieren.
Verwenden Sie nun den folgenden Befehl, um diese Anwendung auszuführen:
Die Ausgabe dieses Befehls wird sein:
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 [XXXXX] using statreload
INFO: Started server process [XXXXX]
INFO: Waiting for application startup.
INFO: Application startup complete.
FastAPI hat automatisch mit Swagger UI interaktive API-Dokumentation generiert. Sie können darauf zugreifen, indem Sie zu http://127.0.0.1:8000/docs
navigieren.
Sie können Tools wie curl
oder Postman verwenden, um den Endpunkt aufzurufen, der einen Wert basierend auf Ihrer Eingabe vorhersagt.
curl -X POST "http://127.0.0.1:8000/predict/" -H "Content-type: application/json" -d '{"feature": 3}'
Schritt 7 [OPTIONAL] – Anwendung mit Docker Compose ausführen
Sie können Ihre Anwendung in einem Containerisierungsprozess zusammen mit docker-compose
ausführen. Die Containerisierung Ihrer Anwendung vereinfacht den Deployment-Prozess, indem Sie Ihre Anwendung einfacher deployen, skalieren und verwalten können. Um Ihre Anwendung als Dockerfile zu definieren, folgen Sie den in Deploy FastAPI Application using Docker Compose beschriebenen Schritten.
Fazit
In diesem Tutorial haben Sie gelernt, wie Sie eine FastAPI-Anwendung mit MongoDB erfolgreich einrichten können, um eine einfache AI-basierte App zu erstellen, die Eingabepredictions speichern und abrufen kann.
Die Kombination von FastAPI und einer NoSQL-Datenbank bietet eine leistungsstarke und flexible Umgebung für den Bau und die Skalierung von AI-getriebenen Anwendungen.
Source:
https://www.digitalocean.com/community/tutorials/set-up-fastapi-app-with-nosql-db