Oversikt

FastAPI er et moderne, høyytelses Python-webrammeverk for å bygge APIer. Det tilbyr automatisk interaktiv dokumentasjon, validering med type hints og asynkron støtte rett ut av boksen.

Før du begynner
Sørg for at dashbordet ditt er åpent - du trenger Git-påloggingsinformasjonen som vises der. Denne malen inkluderer FastAPI, Uvicorn, SQLAlchemy ORM, PyMySQL-driveren, Pydantic og Jinja2-maler.

Hurtigstart

1

Opprett repository fra mal

Gå til fanen Tools & Deployment i dashbordet. Klikk på "New Repository", velg FastAPI-malen fra nedtrekksmenyen, skriv inn et repository-navn og et subdomene, og klikk deretter på "Create Repository".

2

Klon ditt repository

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

Installer avhengigheter

pip install -r requirements.txt
4

Start utviklingsserveren

uvicorn app.main:app --reload

Serveren kjører på http://localhost:8000. Interaktiv API-dokumentasjon er tilgjengelig på http://localhost:8000/docs.

5

Push endringene dine

git add .
git commit -m "Initial setup"
git push origin main
Hver push til Git distribuerer applikasjonen din automatisk. Sjekk Module Work URL i dashbordet for å se den kjørende siden din.

Lokal utvikling med Docker

Hvis du ikke har Python installert lokalt, kan du bruke Docker til å kjøre FastAPI-applikasjonen din.

Hva er Docker?
Docker oppretter isolerte "containere" med all programvaren du trenger (Python, pip) uten å installere den på datamaskinen din.

Kjøre kommandoer med Docker

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

# Start utviklingsserveren
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"

Databasekonfigurasjon

NStrim-plattformen gir deg en MySQL/MariaDB-database. Konfigurer tilkoblingen i .env-filen, eller direkte i databasekonfigurasjonsmodulen din.

DATABASE_URL=mysql+pymysql://<username>:<password>@db.<session-domain>:3306/<username>
Viktig
Databasenavnet og brukernavnet ditt er vanligvis det samme som brukernavnet i dashbordet (f.eks. student01). Sjekk påloggingsdelen i dashbordet for nøyaktige verdier.

Prosjektstruktur

├── app/
│   ├── main.py                # Inngangspunkt for FastAPI-applikasjonen
│   ├── routers/               # Rute-moduler
│   ├── models/                # SQLAlchemy-modeller
│   ├── schemas/               # Pydantic-skjemaer
│   └── database.py            # Databasetilkobling
├── templates/                 # Jinja2-maler
├── static/                    # CSS, JS, bilder
├── requirements.txt           # Python-avhengigheter
└── Dockerfile                 # Docker-konfigurasjon
        

Vanlige oppgaver

Opprett API-endepunkt

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}

Bruke 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)

Pydantic-skjema for validering

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

Nyttige kommandoer

uvicorn app.main:app --reload Start utviklingsserveren med auto-reload
pip install -r requirements.txt Installer avhengigheter
pip freeze > requirements.txt Lagre nåværende avhengigheter

Feilsøking

OperationalError: Can't connect to MySQL server

Årsak: Databaseverten er feil eller utilgjengelig.

Løsning: Sjekk at DATABASE_URL samsvarer med databaseverten fra dashbordet.

ModuleNotFoundError: No module named 'app'

Løsning: Pass på at du kjører uvicorn fra prosjektroten, og at app/__init__.py finnes.

422 Unprocessable Entity

Løsning: FastAPI validerer forespørselsdata automatisk. Sjekk svarinnholdet for detaljer om hvilke felter som ikke besto valideringen. Besøk /docs for å se det forventede forespørselsformatet.

Distribusjons-arbeidsflyt

Kodeendring git push pip install Live!
For mer informasjon, besøk den offisielle FastAPI-dokumentasjonen.