Nou Generator de prompt AI — scrie prompturi mai bune pentru ChatGPT, Claude și Gemini →

DeclarativeBase și Mapped în SQLAlchemy 2.0 în FastAPI

database SQLAlchemy 2.0+ / Python 3.10+ Q&A / Distribuie cod

Definirea modernă a modelelor de baze de date în SQLAlchemy 2.0 folosind adnotări de tipuri native Python și clasa DeclarativeBase.

Sintaxă
class Base(DeclarativeBase): ... / id: Mapped[int] = mapped_column(primary_key=True)

În SQLAlchemy 2.0, vechea sintaxă declarative_base() și Column(Integer, ...) a fost înlocuită de abordarea modernă bazată pe DeclarativeBase și adnotările de tipuri Mapped[...] cu mapped_column().

Această nouă sintaxă oferă auto-completare nativă în IDE, verificare statică de tipuri cu MyPy și elimină discrepanțele dintre codul Python și schema SQL generată.

Exemplu: Model de utilizator modern în SQLAlchemy 2.0
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column
from sqlalchemy import String, Boolean, DateTime
import datetime

class Base(DeclarativeBase):
    pass

class User(Base):
    __tablename__ = "users"

    id: Mapped[int] = mapped_column(primary_key=True)
    email: Mapped[str] = mapped_column(String(255), unique=True, index=True)
    is_active: Mapped[bool] = mapped_column(Boolean, default=True)
    created_at: Mapped[datetime.datetime] = mapped_column(
        DateTime(timezone=True),
        default=lambda: datetime.datetime.now(datetime.timezone.utc)
    )

Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: DeclarativeBase și Mapped în SQLAlchemy 2.0

Ai o nelămurire despre utilizarea comenzii DeclarativeBase și Mapped în SQLAlchemy 2.0 sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.