FastAPI
Pārskats
FastAPI ir moderns, augstas veiktspējas Python tīmekļa ietvars API veidošanai. Tas nodrošina automātisku interaktīvu dokumentāciju, tipu norāžu validāciju un async atbalstu no kastes.
Ātrais starts
Izveidot repozitoriju no veidnes
Savā vadības panelī atveriet cilni Tools & Deployment. Noklikšķiniet uz pogas "New Repository", izvēlieties FastAPI veidni no nolaižamā saraksta, ievadiet repozitorija nosaukumu un apakšdomēnu, un noklikšķiniet "Create Repository".
Klonēt savu repozitoriju
git clone https://<git-server>/<username>/<repo-name>.git
cd <repo-name>
Instalēt atkarības
pip install -r requirements.txt
Palaist izstrādes serveri
uvicorn app.main:app --reload
Serveris darbojas uz http://localhost:8000. Interaktīvā API dokumentācija pieejama: http://localhost:8000/docs.
Augšupielādēt izmaiņas
git add .
git commit -m "Initial setup"
git push origin main
Lokālā izstrāde ar Docker
Ja jums nav lokāli instalēts Python, varat izmantot Docker, lai palaistu savu FastAPI lietojumprogrammu.
Komandu izpilde ar Docker
# Instalēt atkarības
docker run --rm -v $(pwd):/app -w /app python:3.12 pip install -r requirements.txt
# Palaist izstrādes serveri
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"
Datubāzes konfigurācija
NStrim platforma nodrošina jums MySQL/MariaDB datubāzi. Konfigurējiet savienojumu .env failā vai tieši datubāzes konfigurācijas modulī.
DATABASE_URL=mysql+pymysql://<username>:<password>@db.<session-domain>:3306/<username>
student01). Pārbaudiet vadības paneļa piekļuves datu sadaļu, lai iegūtu precīzas vērtības.Projekta struktūra
├── app/
│ ├── main.py # FastAPI lietojumprogrammas ieejas punkts
│ ├── routers/ # Maršrutu moduļi
│ ├── models/ # SQLAlchemy modeļi
│ ├── schemas/ # Pydantic shēmas
│ └── database.py # Datubāzes savienojums
├── templates/ # Jinja2 veidnes
├── static/ # CSS, JS, attēli
├── requirements.txt # Python atkarības
└── Dockerfile # Docker konfigurācija
Bieži veicamie uzdevumi
API galapunkta izveide
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 izmantošana
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 shēma validācijai
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
Noderīgas komandas
uvicorn app.main:app --reload
Palaist izstrādes serveri ar automātisku pārlādi
pip install -r requirements.txt
Instalēt atkarības
pip freeze > requirements.txt
Saglabāt pašreizējās atkarības
Problēmu novēršana
OperationalError: Can't connect to MySQL server
Iemesls: Datubāzes resursdators ir nepareizs vai nav pieejams.
Risinājums: Pārbaudiet, vai DATABASE_URL atbilst datubāzes resursdatoram no jūsu vadības paneļa.
ModuleNotFoundError: No module named 'app'
Risinājums: Pārliecinieties, ka palaižat uvicorn no projekta saknes direktorija un ka eksistē app/__init__.py fails.
422 Unprocessable Entity
Risinājums: FastAPI automātiski validē pieprasījuma datus. Pārbaudiet atbildes pamattekstu, lai uzzinātu, kuri lauki nav izturējuši validāciju. Apmeklējiet /docs, lai redzētu sagaidāmo pieprasījuma formātu.