FastAPI
Apžvalga
FastAPI yra modernus, didelio našumo Python žiniatinklio karkasas, skirtas API kurti. Jis turi automatinę interaktyvią dokumentaciją, tipų užuominų patvirtinimą ir async palaikymą iš karto.
Greitas startas
Sukurkite repozitoriją iš šablono
Valdymo skydelyje pereikite į skirtuką Tools & Deployment. Spauskite mygtuką "New Repository", išskleidžiamame sąraše pasirinkite FastAPI šabloną, įveskite repozitorijos pavadinimą ir subdomeną, tada spauskite "Create Repository".
Klonuokite savo repozitoriją
git clone https://<git-server>/<username>/<repo-name>.git
cd <repo-name>
Įdiekite priklausomybes
pip install -r requirements.txt
Paleiskite kūrimo serverį
uvicorn app.main:app --reload
Serveris veikia adresu http://localhost:8000. Interaktyvi API dokumentacija adresu http://localhost:8000/docs.
Įkelkite savo pakeitimus
git add .
git commit -m "Initial setup"
git push origin main
Vietinis kūrimas su Docker
Jei vietoje neturite įdiegto Python, galite naudoti Docker savo FastAPI aplikacijai paleisti.
Komandų vykdymas su Docker
# Įdiegti priklausomybes
docker run --rm -v $(pwd):/app -w /app python:3.12 pip install -r requirements.txt
# Paleisti kūrimo 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"
Duomenų bazės konfigūracija
NStrim platforma jums suteikia MySQL/MariaDB duomenų bazę. Sukonfigūruokite savo prisijungimą .env faile arba tiesiogiai duomenų bazės konfigūracijos modulyje.
DATABASE_URL=mysql+pymysql://<username>:<password>@db.<session-domain>:3306/<username>
student01). Tikslioms reikšmėms patikrinkite valdymo skydelio prisijungimo duomenų skiltį.Projekto struktūra
├── app/
│ ├── main.py # FastAPI aplikacijos įėjimo taškas
│ ├── routers/ # Maršrutų moduliai
│ ├── models/ # SQLAlchemy modeliai
│ ├── schemas/ # Pydantic schemos
│ └── database.py # Duomenų bazės prisijungimas
├── templates/ # Jinja2 šablonai
├── static/ # CSS, JS, paveikslėliai
├── requirements.txt # Python priklausomybės
└── Dockerfile # Docker konfigūracija
Įprastos užduotys
API galutinio taško kūrimas
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 naudojimas
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 patvirtinimui
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
Naudingos komandos
uvicorn app.main:app --reload
Paleisti kūrimo serverį su automatiniu perkrovimu
pip install -r requirements.txt
Įdiegti priklausomybes
pip freeze > requirements.txt
Įrašyti dabartines priklausomybes
Trikčių šalinimas
OperationalError: Can't connect to MySQL server
Priežastis: Duomenų bazės serveris yra neteisingas arba nepasiekiamas.
Sprendimas: Patikrinkite, ar DATABASE_URL sutampa su valdymo skydelio duomenų bazės serveriu.
ModuleNotFoundError: No module named 'app'
Sprendimas: Įsitikinkite, kad uvicorn paleidžiate iš projekto šaknies katalogo ir kad app/__init__.py egzistuoja.
422 Unprocessable Entity
Sprendimas: FastAPI automatiškai patvirtina užklausų duomenis. Atsako turinyje patikrinkite, kurie laukai nepraėjo patvirtinimo. Apsilankykite /docs, kad pamatytumėte tikėtiną užklausos formatą.