Een GitHub Codespaces-ontwikkelomgeving maken met FastAPI en Postgres

In dit artikel leest u hoe u FastAPI en Postgres samen kunt uitvoeren in een GitHub Codespaces-omgeving . Codespaces is een in de cloud gehoste ontwikkelomgeving die u kunt gebruiken om configureerbare en herhaalbare ontwikkelomgevingen te maken.

U kunt de voorbeeldopslagplaats openen in een IDE (Integrated Development Environment), zoals Visual Studio Code met de extensie GitHub Codespaces.

U kunt de voorbeeldopslagplaats ook lokaal klonen. Wanneer u het project opent in Visual Studio Code, kunt u Dev Containers gebruiken om het uit te voeren met behulp van Dev-containers. Voor Dev Containers is vereist dat Docker Desktop lokaal is geïnstalleerd. Als Docker niet is geïnstalleerd, kunt u het project uitvoeren met behulp van GitHub Codespaces als ontwikkelomgeving.

Wanneer u GitHub Codespaces gebruikt, hebt u een vast aantal kernuren gratis per maand. Voor deze zelfstudie is minder dan één kernuur vereist. Zie Facturering voor GitHub Codespaces voor meer informatie.

U kunt deze installatie ook gebruiken als uitgangspunt en het voorbeeld wijzigen om andere Python-webframeworks zoals Django of Flask uit te voeren.

De ontwikkelomgeving starten in Codespaces

In deze zelfstudie maakt u kennis met een van de vele mogelijke manieren om GitHub Codespaces te maken en te gebruiken.

  1. Ga naar de voorbeeld-app-opslagplaats https://github.com/Azure-Samples/msdocs-fastapi-postgres-codespace.

    De voorbeeldopslagplaats heeft alle configuratie die nodig is voor het maken van een omgeving met een FastAPI-app met behulp van een Postgres-database. U kunt een vergelijkbaar project maken volgens de stappen in het instellen van een Python-project voor GitHub Codespaces.

  2. Selecteer het tabblad Code, Codespaces en + maak een nieuwe coderuimte.

    Schermopname die laat zien hoe u een coderuimte maakt vanuit de GitHub-opslagplaats.

  3. Wanneer de container klaar is met het bouwen, controleert u of u Codespaces in de linkerbenedenhoek van de browser ziet en bekijkt u de voorbeeldopslagplaats.

    De codespace-sleutelconfiguratiebestanden zijn devcontainer.json, Dockerfile en docker-compose.yml. Zie het overzicht van GitHub Codespaces voor meer informatie.

    Aanbeveling

    U kunt de codespace ook uitvoeren in Visual Studio Code. Selecteer Codespaces in de linkerbenedenhoek van de browser of (Ctrl + Shift + P / Ctrl + Command + P) en typ 'Codespaces'. Selecteer Vervolgens Openen in VS Code. Als u de coderuimte stopt en teruggaat naar de opslagplaats en deze opnieuw opent in GitHub Codespaces, hebt u de mogelijkheid om deze te openen in VS Code of een browser.

    Note

    Als PostgreSQL niet kan worden gestart (container loopt vast), kan dit worden veroorzaakt door een incompatibiliteit tussen PostgreSQL 18+ en het bestaande gegevensmapvolume. Bewerk .devcontainer/docker-compose.yaml en wijzig postgres:latest in postgres:17, en bouw vervolgens de container opnieuw. PostgreSQL 18 heeft de indeling van de datamap gewijzigd, waardoor het volumekoppelpunt op /var/lib/postgresql/data niet compatibel is met eerdere versies.

  4. Selecteer het .env.devcontainer-bestand en maak een kopie met de naam .env met dezelfde inhoud.

    Het .env-bestand bevat omgevingsvariabelen die door de code worden gebruikt om verbinding te maken met de database.

  5. Als een terminalvenster nog niet is geopend, opent u een venster door het opdrachtpalet (Ctrl + Shift + P / Ctrl + Command + P) te openen, 'Terminal: Nieuwe terminal maken' te typen en deze te selecteren om een nieuwe terminal te maken.

  6. Selecteer het tabblad POORTEN in het terminalvenster om te bevestigen dat PostgreSQL wordt uitgevoerd op poort 5432.

  7. Voer in het terminalvenster de FastAPI-app uit.

    uvicorn main:app --reload
    
  8. Selecteer de melding Openen in browser.

    Als u de melding niet ziet of gemist, gaat u naar POORTEN en zoekt u het lokale adres voor poort 8000. Gebruik de URL die hier wordt vermeld.

  9. Voeg /docs toe aan het einde van de preview-URL om de Swagger-gebruikersinterface te zien, die u kunt gebruiken om de API-methoden te testen.

    De API-methoden worden gegenereerd op basis van de OpenAPI-interface die FastAPI maakt op basis van de code.

    Schermopname van de FastAPI Swagger-gebruikersinterface.

  10. Voer op de Swagger-pagina de POST-methode uit om een restaurant toe te voegen.

    1. Vouw de POST-methode uit.

    2. Selecteer Probeer het.

    3. Vul de hoofdtekst van de aanvraag in.

      {
        "name": "Restaurant 1",
        "address": "Restaurant 1 address"
      }
      
    4. Selecteer Uitvoeren om de wijziging door te voeren.

Verbinding maken met de database en de gegevens weergeven

  1. Ga terug naar de GitHub Codespace voor het project, selecteer de SQLTools-extensie en selecteer vervolgens Lokale database om verbinding te maken.

    De SQLTools-extensie wordt geïnstalleerd wanneer de container wordt gemaakt. Als de SQLTools-extensie niet wordt weergegeven in de activiteitenbalk, sluit u de coderuimte en opent u deze opnieuw.

  2. Vouw het knooppunt Lokale database uit totdat u de tabel Restaurants hebt gevonden, klik met de rechtermuisknop en selecteer Tabelrecords weergeven.

    U ziet het restaurant dat u hebt toegevoegd.

    Schermopname van het gebruik van de SQLTools-extensie in Visual Studio Code om verbinding te maken met de lokale Postgres-database en tabelrecords weer te geven.

Schoonmaken

Sluit de browser om het gebruik van de codespace te stoppen. (Of sluit VS Code als u deze op die manier hebt geopend.)

Als u van plan bent om de codespace opnieuw te gebruiken, kunt u deze behouden. Alleen voor het uitvoeren van codespaces worden CPU-kosten in rekening gebracht. Voor een gestopte codespace worden alleen opslagkosten in rekening gebracht.

Als u de codespace wilt verwijderen, gaat u naar https://github.com/codespaces Uw codespaces beheren.

Volgende stappen