FastAPI
Yleiskatsaus
FastAPI on moderni, suorituskykyinen Python-webkehys rajapintojen rakentamiseen. Se tarjoaa automaattisen interaktiivisen dokumentaation, tyyppivihjevalidoinnin ja async-tuen suoraan.
Pikaopas
Luo arkisto mallista
Siirry kojelaudallasi Tools & Deployment -välilehteen. Napsauta "New Repository" -painiketta, valitse FastAPI-malli pudotusvalikosta, anna arkiston nimi ja alidomain ja napsauta "Create Repository".
Kloonaa arkistosi
git clone https://<git-server>/<username>/<repo-name>.git
cd <repo-name>
Asenna riippuvuudet
pip install -r requirements.txt
Käynnistä kehityspalvelin
uvicorn app.main:app --reload
Palvelin käynnistyy osoitteessa http://localhost:8000. Interaktiivinen API-dokumentaatio osoitteessa http://localhost:8000/docs.
Lähetä muutoksesi
git add .
git commit -m "Initial setup"
git push origin main
Paikallinen kehitys Dockerilla
Jos sinulla ei ole Pythonia asennettuna paikallisesti, voit käyttää Dockeria FastAPI-sovelluksesi suorittamiseen.
Komentojen suorittaminen Dockerilla
# Asenna riippuvuudet
docker run --rm -v $(pwd):/app -w /app python:3.12 pip install -r requirements.txt
# Käynnistä kehityspalvelin
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"
Tietokantakonfiguraatio
NStrim-alusta tarjoaa sinulle MySQL/MariaDB-tietokannan. Konfiguroi yhteys .env-tiedostossa tai suoraan tietokantakonfiguraatiomoduulissasi.
DATABASE_URL=mysql+pymysql://<username>:<password>@db.<session-domain>:3306/<username>
student01). Tarkista tarkat arvot kojelaudan tunnusosiosta.Projektin rakenne
├── app/
│ ├── main.py # FastAPI-sovelluksen aloituspiste
│ ├── routers/ # Reititysmoduulit
│ ├── models/ # SQLAlchemy-mallit
│ ├── schemas/ # Pydantic-skeemat
│ └── database.py # Tietokantayhteys
├── templates/ # Jinja2-mallit
├── static/ # CSS, JS, kuvat
├── requirements.txt # Python-riippuvuudet
└── Dockerfile # Docker-konfiguraatio
Yleiset tehtävät
API-päätepisteen luominen
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}
SQLAlchemyn käyttö
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-skeema validointiin
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
Hyödylliset komennot
uvicorn app.main:app --reload
Käynnistä kehityspalvelin automaattisella uudelleenlatauksella
pip install -r requirements.txt
Asenna riippuvuudet
pip freeze > requirements.txt
Tallenna nykyiset riippuvuudet
Vianmääritys
OperationalError: Can't connect to MySQL server
Syy: Tietokantapalvelin on virheellinen tai ei saavutettavissa.
Ratkaisu: Tarkista, että DATABASE_URL vastaa kojelaudan tietokantapalvelinta.
ModuleNotFoundError: No module named 'app'
Ratkaisu: Varmista, että suoritat uvicornin projektin juurihakemistosta ja että app/__init__.py on olemassa.
422 Unprocessable Entity
Ratkaisu: FastAPI validoi pyyntödatan automaattisesti. Tarkista vastauksen sisällöstä, mitkä kentät eivät läpäisseet validointia. Käy osoitteessa /docs nähdäksesi odotetun pyyntömuodon.