Oversigt

FastAPI er et moderne, højtydende Python-webframework til at bygge API'er. Det har automatisk interaktiv dokumentation, validering af type-hints og async-understøttelse fra start.

Før du begynder
Sørg for at have dit dashboard åbent - du skal bruge de Git-loginoplysninger, der vises der. Denne skabelon inkluderer FastAPI, Uvicorn, SQLAlchemy ORM, PyMySQL-driver, Pydantic og Jinja2-skabeloner.

Kom godt i gang

1

Opret repository fra skabelon

Gå til fanen Tools & Deployment på dit dashboard. Klik på "New Repository", vælg FastAPI-skabelonen i dropdown-menuen, indtast et repository-navn og et subdomæne, og klik på "Create Repository".

2

Klon dit repository

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

Installer afhængigheder

pip install -r requirements.txt
4

Start udviklingsserver

uvicorn app.main:app --reload

Serveren kører på http://localhost:8000. Interaktiv API-dokumentation findes på http://localhost:8000/docs.

5

Push dine ændringer

git add .
git commit -m "Initial setup"
git push origin main
Hver push til Git udruller automatisk din applikation. Tjek din Module Work URL på dashboardet for at se din live-side.

Lokal udvikling med Docker

Hvis du ikke har Python installeret lokalt, kan du bruge Docker til at køre din FastAPI-applikation.

Hvad er Docker?
Docker opretter isolerede "containere" med al den software, du har brug for (Python, pip), uden at installere dem på din computer.

Kør kommandoer med Docker

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

# Run development server
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"

Databasekonfiguration

NStrim-platformen stiller en MySQL/MariaDB-database til rådighed. Konfigurer din forbindelse i .env-filen eller direkte i dit databasekonfigurationsmodul.

DATABASE_URL=mysql+pymysql://<username>:<password>@db.<session-domain>:3306/<username>
Vigtigt
Dit databasenavn og brugernavn er typisk det samme som dit dashboard-brugernavn (f.eks. student01). Tjek dashboardets loginoplysningssektion for præcise værdier.

Projektstruktur

├── app/
│   ├── main.py                # FastAPI-applikationens entry point
│   ├── routers/               # Rute-moduler
│   ├── models/                # SQLAlchemy-modeller
│   ├── schemas/               # Pydantic-skemaer
│   └── database.py            # Databaseforbindelse
├── templates/                 # Jinja2-skabeloner
├── static/                    # CSS, JS, billeder
├── requirements.txt           # Python-afhængigheder
└── Dockerfile                 # Docker-konfiguration
        

Almindelige opgaver

Opret et API-endpoint

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}

Brug af 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-skema til 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 udviklingsserver med auto-reload
pip install -r requirements.txt Installer afhængigheder
pip freeze > requirements.txt Gem nuværende afhængigheder

Fejlfinding

OperationalError: Can't connect to MySQL server

Årsag: Database-host er forkert eller utilgængelig.

Løsning: Tjek at DATABASE_URL matcher database-hosten fra dit dashboard.

ModuleNotFoundError: No module named 'app'

Løsning: Sørg for, at du kører uvicorn fra projektets rodmappe, og at app/__init__.py findes.

422 Unprocessable Entity

Løsning: FastAPI validerer automatisk request-data. Tjek response-body'en for detaljer om, hvilke felter der fejlede validering. Besøg /docs for at se det forventede request-format.

Udrulnings-workflow

Kodeændring git push pip install Live!
For mere information, besøg den officielle FastAPI-dokumentation.