Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article explique comment exécuter FastAPI et Postgres ensemble dans un environnement GitHub Codespaces . Codespaces est un environnement de développement hébergé dans le cloud que vous pouvez utiliser pour créer des environnements de développement configurables et reproductibles.
Vous pouvez ouvrir l’exemple de dépôt dans un environnement de développement intégré (IDE) tel que Visual Studio Code avec l’extension GitHub Codespaces.
Vous pouvez également cloner l’exemple de référentiel localement. Lorsque vous ouvrez le projet dans Visual Studio Code, vous pouvez utiliser dev Containers pour l’exécuter à l’aide de Dev Containers. Les conteneurs de développement nécessitent que Docker Desktop soit installé localement. Si Docker n'est pas installé, vous pouvez exécuter le projet à l'aide de GitHub Codespaces comme environnement de développement.
Lorsque vous utilisez GitHub Espaces de code, vous disposez d’un nombre fixe d’heures de base gratuites par mois. Ce didacticiel nécessite moins d’une heure pour être terminé. Pour plus d’informations, consultez À propos de la facturation pour GitHub Codespaces.
Vous pouvez également utiliser cette configuration comme point de départ et modifier l’exemple pour exécuter d’autres frameworks web Python tels que Django ou Flask.
Démarrer l’environnement de développement dans Codespaces
Ce didacticiel présente l’une des nombreuses façons possibles de créer et d’utiliser GitHub Codespaces.
Accédez au référentiel d’applications d’exemple https://github.com/Azure-Samples/msdocs-fastapi-postgres-codespace.
L’exemple de référentiel a toutes les configurations nécessaires pour créer un environnement avec une application FastAPI à l’aide d’une base de données Postgres. Vous pouvez créer un projet similaire en suivant les étapes de configuration d’un projet Python pour GitHub Codespaces.
Sélectionnez l’onglet Code, Codespaces et + créez un espace de code.
Une fois la construction du conteneur terminée, vérifiez que Codespaces apparaît dans le coin inférieur gauche du navigateur et que le dépôt d'exemple est visible.
Les fichiers de configuration de clé d’espace de code sont devcontainer.json, Dockerfile et docker-compose.yml. Pour plus d’informations, consultez la vue d’ensemble de GitHub Codespaces.
Conseil / Astuce
Vous pouvez également exécuter l’espace de code dans Visual Studio Code. Sélectionnez Espaces de code dans le coin inférieur gauche du navigateur ou (
Ctrl+Shift+P/Ctrl+Command+P) et tapez « Espaces de code ». Sélectionnez Ensuite Ouvrir dans VS Code. En outre, si vous arrêtez l’espace de code et revenez au référentiel et ouvrez-le à nouveau dans GitHub Codespaces, vous avez la possibilité de l’ouvrir dans VS Code ou un navigateur.Note
Si PostgreSQL ne parvient pas à démarrer (blocage du conteneur), cela peut être dû à une incompatibilité entre PostgreSQL 18+ et le volume de répertoire de données existant. Modifiez
.devcontainer/docker-compose.yamlet remplacezpostgres:latestparpostgres:17, puis reconstruisez le conteneur. PostgreSQL 18 a modifié la disposition du répertoire de données, ce qui rend le montage/var/lib/postgresql/datadu volume incompatible avec les versions précédentes.Sélectionnez le fichier .env.devcontainer et créez une copie appelée .env avec le même contenu.
Le fichier .env contient des variables d’environnement que le code utilise pour se connecter à la base de données.
Si une fenêtre de terminal n’est pas déjà ouverte, ouvrez-en une en ouvrant la palette de commandes (
Ctrl+Shift+P/Ctrl+Command+P), en tapant « Terminal : Créer un terminal », puis sélectionnez-la pour créer un terminal.Sélectionnez l’onglet PORTS dans la fenêtre de terminal pour vérifier que PostgreSQL s’exécute sur le port 5432.
Dans la fenêtre de terminal, exécutez l’application FastAPI.
uvicorn main:app --reloadSélectionnez la notification Ouvrir dans le navigateur.
Si vous ne voyez pas ou n’avez pas manqué la notification, accédez à PORTS et recherchez l’adresse locale pour le port 8000. Utilisez l’URL répertoriée ici.
Ajoutez /docs à la fin de l’URL de préversion pour afficher l’interface utilisateur Swagger, que vous pouvez utiliser pour tester les méthodes d’API.
Les méthodes d’API sont générées à partir de l’interface OpenAPI créée par FastAPI à partir du code.
Dans la page Swagger, exécutez la méthode POST pour ajouter un restaurant.
Développez la méthode POST .
Sélectionnez Essayer.
Renseignez le corps de la demande.
{ "name": "Restaurant 1", "address": "Restaurant 1 address" }Sélectionnez Exécuter pour valider la modification.
Se connecter à la base de données et afficher les données
Revenez à GitHub Codespace pour le projet, sélectionnez l’extension SQLTools, puis sélectionnez Base de données locale à connecter.
L’extension SQLTools est installée lors de la création du conteneur. Si l’extension SQLTools n’apparaît pas dans la barre d’activité, fermez l’espace de code et rouvrez-le.
Développez le nœud de base de données locale jusqu’à ce que vous trouviez la table restaurants , cliquez avec le bouton droit et sélectionnez Afficher les enregistrements de table.
Vous voyez le restaurant que vous avez ajouté.
Nettoyage
Pour arrêter d’utiliser l’espace de code, fermez le navigateur. (Ou fermez VS Code si vous l’avez ouvert de cette façon.)
Si vous envisagez à nouveau d’utiliser l’espace de code, vous pouvez le conserver. Seuls les codespaces en cours d’exécution entraînent des frais liés au processeur. Un codespace arrêté entraîne uniquement des coûts de stockage.
Si vous souhaitez supprimer l'espace de code, accédez à la gestion de vos espaces de code via https://github.com/codespaces.