Ülevaade

FastAPI on kaasaegne kõrge jõudlusega Pythoni veebiraamistik API-de ehitamiseks. See pakub automaatset interaktiivset dokumentatsiooni, tüübivihjete valideerimist ja sünkroonse asünkroontoe.

Enne alustamist
Veendu, et sinu töölaud on avatud - vajad seal kuvatavaid Giti sisselogimisandmeid. See mall sisaldab FastAPI-d, Uvicorni, SQLAlchemy ORM-i, PyMySQL draiverit, Pydanticut ja Jinja2 mallisüsteemi.

Kiirjuhend

1

Loo repositoorium mallist

Mine oma töölaual vahekaardile Tools & Deployment. Klõpsa nuppu "New Repository", vali rippmenüüst FastAPI mall, sisesta repositooriumi nimi ja alamdomeen ning klõpsa "Create Repository".

2

Klooni oma repositoorium

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

Paigalda sõltuvused

pip install -r requirements.txt
4

Käivita arendusserver

uvicorn app.main:app --reload

Server töötab aadressil http://localhost:8000. Interaktiivne API dokumentatsioon aadressil http://localhost:8000/docs.

5

Saada oma muudatused üles

git add .
git commit -m "Initial setup"
git push origin main
Iga push Giti juurutab sinu rakenduse automaatselt. Kontrolli oma Mooduli töö-URL-i töölaual, et näha oma live-saiti.

Kohalik arendus Dockeriga

Kui sul ei ole Pythonit kohalikult paigaldatud, saad oma FastAPI rakenduse käivitamiseks kasutada Dockerit.

Mis on Docker?
Docker loob isoleeritud "konteinerid" kogu vajaliku tarkvaraga (Python, pip), ilma et peaksid neid oma arvutisse paigaldama.

Käskude käivitamine Dockeriga

# Paigalda sõltuvused
docker run --rm -v $(pwd):/app -w /app python:3.12 pip install -r requirements.txt

# Käivita arendusserver
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"

Andmebaasi seadistamine

NStrim-platvorm pakub sulle MySQL/MariaDB andmebaasi. Seadista oma ühendus .env failis või otse oma andmebaasi seadistusmoodulis.

DATABASE_URL=mysql+pymysql://<username>:<password>@db.<session-domain>:3306/<username>
Tähtis
Sinu andmebaasi nimi ja kasutajanimi on tavaliselt samad mis sinu töölaua kasutajanimi (nt student01). Täpseid väärtusi kontrolli oma töölaua sisselogimisandmete sektsioonist.

Projekti struktuur

├── app/
│   ├── main.py                # FastAPI rakenduse sisendpunkt
│   ├── routers/               # Marsruudimoodulid
│   ├── models/                # SQLAlchemy mudelid
│   ├── schemas/               # Pydantic skeemid
│   └── database.py            # Andmebaasiühendus
├── templates/                 # Jinja2 mallid
├── static/                    # CSS, JS, pildid
├── requirements.txt           # Pythoni sõltuvused
└── Dockerfile                 # Dockeri seadistus
        

Levinud ülesanded

API otspunkti loomine

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}

SQLAlchemy kasutamine

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 skeem valideerimiseks

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

Kasulikud käsud

uvicorn app.main:app --reload Käivita arendusserver automaatse taaslaadimisega
pip install -r requirements.txt Paigalda sõltuvused
pip freeze > requirements.txt Salvesta praegused sõltuvused

Tõrkeotsing

OperationalError: Can't connect to MySQL server

Põhjus: Andmebaasi host on vale või pole kättesaadav.

Lahendus: Kontrolli, et DATABASE_URL vastaks töölaualt saadud andmebaasi hostile.

ModuleNotFoundError: No module named 'app'

Lahendus: Veendu, et käivitad uvicorn'i projekti juurkataloogist ja et app/__init__.py on olemas.

422 Unprocessable Entity

Lahendus: FastAPI valideerib päringuandmed automaatselt. Kontrolli vastuse keha, et näha, millised väljad valideerimisel ebaõnnestusid. Külasta /docs, et näha oodatavat päringuformaati.

Juurutamise töövoog

Koodimuudatus git push pip install Live!
Lisainfo saamiseks külasta ametlikku FastAPI dokumentatsiooni.