Översikt

FastAPI är ett modernt Python-webbramverk med hög prestanda för att bygga API:er. Det erbjuder automatisk interaktiv dokumentation, validering via type hints och async-stöd från start.

Innan du börjar
Se till att din dashboard är öppen – du kommer att behöva Git-uppgifterna som visas där. Den här mallen innehåller FastAPI, Uvicorn, SQLAlchemy ORM, PyMySQL-drivrutin, Pydantic och Jinja2-mallar.

Kom igång

1

Skapa repository från mall

Gå till fliken Tools & Deployment i din dashboard. Klicka på knappen "New Repository", välj FastAPI-mallen från rullgardinsmenyn, ange ett repository-namn och en subdomän och klicka sedan på "Create Repository".

2

Klona ditt repository

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

Installera beroenden

pip install -r requirements.txt
4

Starta utvecklingsservern

uvicorn app.main:app --reload

Servern körs på http://localhost:8000. Interaktiv API-dokumentation finns på http://localhost:8000/docs.

5

Pusha dina ändringar

git add .
git commit -m "Initial setup"
git push origin main
Varje push till Git distribuerar din applikation automatiskt. Kontrollera din Module Work URL i dashboarden för att se din live-sajt.

Lokal utveckling med Docker

Om du inte har Python installerat lokalt kan du använda Docker för att köra din FastAPI-applikation.

Vad är Docker?
Docker skapar isolerade "containrar" med all programvara du behöver (Python, pip) utan att installera dem på din dator.

Köra kommandon 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"

Databaskonfiguration

NStrim-plattformen tillhandahåller en MySQL/MariaDB-databas. Konfigurera din anslutning i .env-filen eller direkt i din modul för databaskonfiguration.

DATABASE_URL=mysql+pymysql://<username>:<password>@db.<session-domain>:3306/<username>
Viktigt
Ditt databasnamn och användarnamn är vanligtvis samma som ditt användarnamn i dashboarden (t.ex. student01). Kontrollera avsnittet med inloggningsuppgifter i din dashboard för exakta värden.

Projektstruktur

├── app/
│   ├── main.py                # Ingångspunkt för FastAPI-applikationen
│   ├── routers/               # Ruttmoduler
│   ├── models/                # SQLAlchemy-modeller
│   ├── schemas/               # Pydantic-scheman
│   └── database.py            # Databasanslutning
├── templates/                 # Jinja2-mallar
├── static/                    # CSS, JS, bilder
├── requirements.txt           # Python-beroenden
└── Dockerfile                 # Docker-konfiguration
        

Vanliga uppgifter

Skapa en 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}

Använda 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-schema för 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

Användbara kommandon

uvicorn app.main:app --reload Starta utvecklingsserver med autoreload
pip install -r requirements.txt Installera beroenden
pip freeze > requirements.txt Spara aktuella beroenden

Felsökning

OperationalError: Can't connect to MySQL server

Orsak: Databasvärden är felaktig eller inte tillgänglig.

Lösning: Kontrollera att DATABASE_URL matchar databasvärden från din dashboard.

ModuleNotFoundError: No module named 'app'

Lösning: Säkerställ att du kör uvicorn från projektets rotmapp och att app/__init__.py finns.

422 Unprocessable Entity

Lösning: FastAPI validerar förfrågningsdata automatiskt. Kontrollera svarets body för information om vilka fält som inte klarade valideringen. Besök /docs för att se det förväntade förfrågningsformatet.

Distributionsflöde

Kodändring git push pip install Live!
För mer information, besök den officiella FastAPI-dokumentationen.