Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel erfahren Sie, wie Sie FastAPI und Postgres in einer GitHub Codespaces-Umgebung zusammen ausführen. Codespaces ist eine in der Cloud gehostete Entwicklungsumgebung, mit der Sie konfigurierbare und wiederholbare Entwicklungsumgebungen erstellen können.
Sie können das Beispiel-Repository in einer integrierten Entwicklungsumgebung (IDE) wie Visual Studio Code mit der Erweiterung GitHub Codespaces öffnen.
Alternativ können Sie das Beispiel-Repository lokal klonen. Wenn Sie das Projekt in Visual Studio Code öffnen, können Sie es mithilfe von Dev Containers mit Dev Containers ausführen. Dev Containers erfordert, dass Docker Desktop lokal installiert ist. Wenn Docker nicht installiert ist, können Sie das Projekt mit GitHub Codespaces als Entwicklungsumgebung ausführen.
Wenn Sie GitHub Codespaces verwenden, haben Sie eine feste Anzahl von Kernstunden kostenlos pro Monat. Das Abschließen dieses Tutorials dauert weniger als eine Core-Stunde. Weitere Informationen finden Sie unter "Abrechnung für GitHub Codespaces".
Sie können dieses Setup auch als Ausgangspunkt verwenden und das Beispiel so ändern, dass andere Python-Webframeworks wie Django oder Flask ausgeführt werden.
Starten der Entwicklungsumgebung in Codespaces
In diesem Lernprogramm wird eine von vielen möglichen Möglichkeiten zum Erstellen und Arbeiten mit GitHub Codespaces vorgestellt.
Wechseln Sie zum Beispiel-App-Repository https://github.com/Azure-Samples/msdocs-fastapi-postgres-codespace.
Das Beispielrepo verfügt über die gesamte Konfiguration, die zum Erstellen einer Umgebung mit einer FastAPI-App mit einer Postgres-Datenbank erforderlich ist. Sie können ein ähnliches Projekt erstellen, das den Schritten im Einrichten eines Python-Projekts für GitHub Codespaces folgt.
Wählen Sie die Registerkarte "Code", " Codespaces " aus, und + erstellen Sie einen neuen Codespace.
Wenn der Container die Erstellung abgeschlossen hat, vergewissern Sie sich, dass Codespaces in der unteren linken Ecke des Browsers angezeigt werden, und sehen Sie sich das Beispiel-Repository an.
Die Codespace-Schlüsselkonfigurationsdateien sind devcontainer.json, Dockerfile und docker-compose.yml. Weitere Informationen finden Sie in der Übersicht über GitHub Codespaces.
Tipp
Sie können den Codespace auch in Visual Studio Code ausführen. Wählen Sie Codespaces in der unteren linken Ecke des Browsers oder (
Ctrl+Shift+P/Ctrl+Command+P) aus, und geben Sie "Codespaces" ein. Wählen Sie dann "In VS Code öffnen" aus. Wenn Sie den Codespace beenden und zum Repository zurückkehren und es erneut in GitHub Codespaces öffnen, haben Sie die Möglichkeit, ihn in VS Code oder einem Browser zu öffnen.Note
Wenn PostgreSQL nicht gestartet werden kann (Containerabstürzen), kann dies auf eine Inkompatibilität zwischen PostgreSQL 18+ und dem vorhandenen Datenverzeichnisvolume zurückzuführen sein. Bearbeiten Sie
.devcontainer/docker-compose.yamlund ändern Siepostgres:latestinpostgres:17, dann erstellen Sie den Container neu. PostgreSQL 18 hat das Layout des Datenverzeichnisses geändert, sodass die Volume-Einhängung bei/var/lib/postgresql/datanicht mehr mit früheren Versionen kompatibel ist.Wählen Sie die DATEI ".env.devcontainer " aus, und erstellen Sie eine Kopie namens ".env " mit demselben Inhalt.
Die env-Datei enthält Umgebungsvariablen, die der Code zum Herstellen einer Verbindung mit der Datenbank verwendet.
Wenn noch kein Terminalfenster geöffnet ist, öffnen Sie eins, indem Sie die Befehlspalette öffnen (
Ctrl+Shift+P/Ctrl+Command+P), indem Sie "Terminal: Neues Terminal erstellen" eingeben und es auswählen, um ein neues Terminal zu erstellen.Wählen Sie im Terminalfenster die Registerkarte "PORTS " aus, um zu bestätigen, dass PostgreSQL auf Port 5432 ausgeführt wird.
Führen Sie im Terminalfenster die FastAPI-App aus.
uvicorn main:app --reloadWählen Sie die Benachrichtigung im Browser öffnen aus.
Wenn die Benachrichtigung nicht angezeigt oder verpasst wird, wechseln Sie zu PORTS , und suchen Sie die lokale Adresse für Port 8000. Verwenden Sie die dort aufgeführte URL.
Fügen Sie am Ende der Vorschau-URL /docs hinzu, um die Swagger-UI anzuzeigen, die Sie zum Testen der API-Methoden verwenden können.
Die API-Methoden werden aus der OpenAPI-Schnittstelle generiert, die FastAPI aus dem Code erstellt.
Führen Sie auf der Seite "Swagger" die POST-Methode aus, um ein Restaurant hinzuzufügen.
Erweitern Sie die POST-Methode .
Wählen Sie Ausprobieren aus.
Füllen Sie den Body der Anfrage aus.
{ "name": "Restaurant 1", "address": "Restaurant 1 address" }Wählen Sie "Ausführen" aus, um die Änderung zu übernehmen.
Herstellen einer Verbindung mit der Datenbank und Anzeigen der Daten
Wechseln Sie zurück zum GitHub Codespace für das Projekt, wählen Sie die SQLTools-Erweiterung aus, und wählen Sie dann " Lokale Datenbank " aus, um eine Verbindung herzustellen.
Die SQLTools-Erweiterung wird installiert, wenn der Container erstellt wird. Wenn die SQLTools-Erweiterung nicht in der Aktivitätsleiste angezeigt wird, schließen Sie den Codespace, und öffnen Sie sie erneut.
Erweitern Sie den Knoten " Lokale Datenbank ", bis Sie die Tabelle "Restaurants " gefunden haben, klicken Sie mit der rechten Maustaste, und wählen Sie " Tabellendatensätze anzeigen" aus.
Sie sehen das Restaurant, das Sie hinzugefügt haben.
Aufräumen
Schließen Sie den Browser, um die Verwendung des Codespaces zu beenden. (Oder schließen Sie VS Code, wenn Sie ihn auf diese Weise geöffnet haben.)
Wenn Sie die Verwendung des Codespaces erneut planen, können Sie ihn beibehalten. Nur beim Ausführen von Codespaces fallen CPU-Gebühren an. Für einen beendeten Codespace fallen nur Speicherkosten an.
Wenn Sie den Codespace entfernen möchten, gehen Sie zu https://github.com/codespaces, um Ihre Codespaces zu verwalten.