Skapa en GitHub Codespaces-utvecklingsmiljö med FastAPI och Postgres

Den här artikeln visar hur du kör FastAPI och Postgres tillsammans i en GitHub Codespaces-miljö . Codespaces är en molnbaserad utvecklingsmiljö som gör att du kan skapa konfigurerbara och repeterbara utvecklingsmiljöer.

Du kan öppna exempellagringsplatsen i en webbläsare eller i en integrerad utvecklingsmiljö (IDE) som Visual Studio Code med GitHub Codespaces-tillägget.

Du kan också klona exempellagringsplatsen lokalt. När du öppnar projektet i Visual Studio Code kan du använda Dev Containers för att köra det med dev-containrar. Dev Containers kräver att Docker Desktop installeras lokalt. Om Docker inte är installerat kan du köra projektet med GitHub Codespaces som utvecklingsmiljö.

Tänk på att du har ett fast antal lediga kärntimmar per månad när du använder GitHub Codespaces. Den här handledningen kräver mindre än en kärntimme för att slutföras. Mer information finns i Om fakturering för GitHub Codespaces.

Du kan också använda den här konfigurationen som utgångspunkt och ändra exemplet för att köra andra Python-webbramverk som Django eller Flask.

Starta utvecklingsmiljön i Codespaces

Den här handledningen introducerar ett av många möjliga sätt att skapa och arbeta med GitHub Codespaces.

  1. Gå till exempelappens lagringsplats https://github.com/Azure-Samples/msdocs-fastapi-postgres-codespace.

    Exempeldatabasen har all konfiguration som krävs för att skapa en miljö med en FastAPI-app med hjälp av en Postgres-databas. Du kan skapa ett liknande projekt genom att följa stegen i Konfigurera ett Python-projekt för GitHub Codespaces.

  2. Välj Kod, fliken Codespaces och + för att skapa ett nytt kodområde.

    Skärmbild som visar hur du skapar ett kodområde från GitHub-lagringsplatsen.

  3. När containern har skapats bekräftar du att du ser Codespaces i det nedre vänstra hörnet i webbläsaren och ser exempellagringsplatsen.

    Konfigurationsfilerna för kodområdets nyckel är devcontainer.json, Dockerfile och docker-compose.yml. Mer information finns i Översikt över GitHub Codespaces.

    Tips/Råd

    Du kan också köra kodområdet i Visual Studio Code. Välj Codespaces i det nedre vänstra hörnet i webbläsaren eller (Ctrl + Shift + P / Ctrl + Command + P) och skriv "Codespaces". Välj sedan Öppna i VS Code. Om du stoppar kodområdet och går tillbaka till lagringsplatsen och öppnar det igen i GitHub Codespaces kan du öppna det i VS Code eller en webbläsare.

  4. Välj filen .env.devcontainer och skapa en kopia med namnet .env med samma innehåll.

    .env innehåller miljövariabler som används i koden för att ansluta till databasen.

  5. Om ett terminalfönster inte redan är öppet öppnar du ett genom att öppna kommandopaletten (Ctrl + Shift + P / Ctrl + Command + P), skriva "Terminal: Skapa ny terminal" och välja den för att skapa en ny terminal.

  6. Välj fliken PORTar i terminalfönstret för att bekräfta att PostgreSQL körs på port 5432.

  7. Kör FastAPI-appen i terminalfönstret.

    uvicorn main:app --reload
    
  8. Välj meddelandet Öppna i webbläsare.

    Om du inte ser eller missade meddelandet går du till PORTar och hittar den lokala adressen för port 8000. Använd url:en som anges där.

  9. Lägg till /docs i slutet av förhandsgransknings-URL:en för att se Swagger-användargränssnittet, vilket gör att du kan testa API-metoderna.

    API-metoderna genereras från OpenAPI-gränssnittet som FastAPI skapar från koden.

    Skärmbild som visar FastAPI Swagger-användargränssnittet.

  10. På swagger-sidan kör du POST-metoden för att lägga till en restaurang.

    1. Expandera POST-metoden .

    2. Välj Prova.

    3. Fyll i begärandetexten.

      {
        "name": "Restaurant 1",
        "address": "Restaurant 1 address"
      }
      
    4. Välj Kör för att genomföra ändringen

Anslut till databasen och visa data

  1. Gå tillbaka till GitHub Codespace för projektet, välj SQLTools-tillägget och välj sedan Lokal databas för att ansluta.

    SQLTools-tillägget bör installeras när containern skapas. Om SQLTools-tillägget inte visas i aktivitetsfältet stänger du kodområdet och öppnar igen.

  2. Expandera noden Lokal databas tills du hittar tabellen restauranger, högerklicka på Visa Tabellposter.

    Du bör se restaurangen du lade till.

    Skärmbild som visar hur du använder SQLTools-tillägget i Visual Studio Code för att ansluta till postgres lokala databas och visa tabellposter.

Städa upp

Stäng webbläsaren om du vill sluta använda kodområdet. (Eller stäng VS Code om du öppnade den på det sättet.)

Om du planerar att använda kodområdet igen kan du behålla det. Endast användning av codespaces innebär CPU-kostnader. Ett stoppat kodområde medför endast lagringskostnader.

Om du vill ta bort kodområdet går du till https://github.com/codespaces för att hantera dina kodområden.

Nästa steg