Aperçu

FastAPI est un framework web Python moderne et hautes performances pour la création d'API. Il propose une documentation interactive automatique, la validation des annotations de type et le support asynchrone prêt à l'emploi.

Avant de commencer
Assurez-vous que votre tableau de bord est ouvert - vous aurez besoin des identifiants Git qui y sont affichés. Ce modèle inclut FastAPI, Uvicorn, SQLAlchemy ORM, le pilote PyMySQL, Pydantic et le moteur de templates Jinja2.

Démarrage rapide

1

Créer un dépôt à partir du modèle

Sur votre tableau de bord, allez dans l'onglet Tools & Deployment. Cliquez sur le bouton "New Repository", sélectionnez le modèle FastAPI dans le menu déroulant, saisissez un nom de dépôt et un sous-domaine, puis cliquez sur "Create Repository".

2

Cloner votre dépôt

git clone https://<git-server>/<username>/<repo-name>.git
cd <repo-name>
3

Installer les dépendances

pip install -r requirements.txt
4

Démarrer le serveur de développement

uvicorn app.main:app --reload

Le serveur s'exécute sur http://localhost:8000. Documentation API interactive sur http://localhost:8000/docs.

5

Pousser vos modifications

git add .
git commit -m "Initial setup"
git push origin main
Chaque push vers Git déploie automatiquement votre application. Consultez l'URL de travail du module sur votre tableau de bord pour voir votre site en ligne.

Développement local avec Docker

Si vous n'avez pas Python installé localement, vous pouvez utiliser Docker pour exécuter votre application FastAPI.

Qu'est-ce que Docker ?
Docker crée des "conteneurs" isolés contenant tous les logiciels nécessaires (Python, pip) sans les installer sur votre ordinateur.

Exécuter des commandes avec Docker

# Installer les dépendances
docker run --rm -v $(pwd):/app -w /app python:3.12 pip install -r requirements.txt

# Exécuter le serveur de développement
docker run --rm -v $(pwd):/app -w /app -p 8000:8000 python:3.12 sh -c "pip install -r requirements.txt && uvicorn app.main:app --host 0.0.0.0 --reload"

Configuration de la base de données

La plateforme NStrim met à votre disposition une base de données MySQL/MariaDB. Configurez votre connexion dans le fichier .env ou directement dans votre module de configuration de base de données.

DATABASE_URL=mysql+pymysql://<username>:<password>@db.<session-domain>:3306/<username>
Important
Le nom de votre base de données et votre nom d'utilisateur sont généralement identiques à votre nom d'utilisateur du tableau de bord (par ex. student01). Consultez la section identifiants de votre tableau de bord pour les valeurs exactes.

Structure du projet

├── app/
│   ├── main.py                # Point d'entrée de l'application FastAPI
│   ├── routers/               # Modules de routes
│   ├── models/                # Modèles SQLAlchemy
│   ├── schemas/               # Schémas Pydantic
│   └── database.py            # Connexion à la base de données
├── templates/                 # Templates Jinja2
├── static/                    # CSS, JS, images
├── requirements.txt           # Dépendances Python
└── Dockerfile                 # Config Docker
        

Tâches courantes

Créer un point d'API

from fastapi import APIRouter

router = APIRouter()

@router.get("/users")
async def get_users():
    return [{"name": "Alice"}, {"name": "Bob"}]

@router.post("/users")
async def create_user(name: str, email: str):
    return {"name": name, "email": email}

Utiliser SQLAlchemy

from sqlalchemy import Column, Integer, String
from app.database import Base

class User(Base):
    __tablename__ = "users"

    id = Column(Integer, primary_key=True, index=True)
    name = Column(String(100))
    email = Column(String(255), unique=True)

Schéma Pydantic pour la validation

from pydantic import BaseModel

class UserCreate(BaseModel):
    name: str
    email: str

class UserResponse(BaseModel):
    id: int
    name: str
    email: str

    class Config:
        from_attributes = True

Commandes utiles

uvicorn app.main:app --reload Démarrer le serveur de dev avec rechargement automatique
pip install -r requirements.txt Installer les dépendances
pip freeze > requirements.txt Sauvegarder les dépendances actuelles

Dépannage

OperationalError: Can't connect to MySQL server

Cause : L'hôte de la base de données est incorrect ou non accessible.

Solution : Vérifiez que DATABASE_URL correspond à l'hôte de la base de données indiqué sur votre tableau de bord.

ModuleNotFoundError: No module named 'app'

Solution : Assurez-vous d'exécuter uvicorn depuis le répertoire racine du projet et que app/__init__.py existe.

422 Unprocessable Entity

Solution : FastAPI valide les données de requête automatiquement. Consultez le corps de la réponse pour obtenir des détails sur les champs ayant échoué à la validation. Visitez /docs pour voir le format de requête attendu.

Flux de déploiement

Modification du code git push pip install En ligne !
Pour plus d'informations, consultez la documentation officielle FastAPI.