Î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)
)
Întrebări & Exemple de Cod:
DeclarativeBase și Mapped în SQLAlchemy 2.0Ai o nelămurire despre utilizarea comenzii
DeclarativeBase și Mapped în SQLAlchemy 2.0sau 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.