← Каталог
Работа с базами данных в Python — ORM и уровни абстракции
Фрагмент из «Работа с базами данных в Python»: ORM и уровни абстракции.
from datetime import datetime
from sqlalchemy import create_engine, Column, Integer, String, DateTime
from sqlalchemy.orm import declarative_base, sessionmaker
Base = declarative_base()
class User(Base):
__tablename__ = "users"
id = Column(Integer, primary_key=True)
username = Column(String(50), unique=True, nullable=False)
email = Column(String(100), nullable=False)
created_at = Column(DateTime, default=datetime.utcnow)
engine = create_engine("sqlite:///example.db")
Base.metadata.create_all(engine)
Session = sessionmaker(bind=engine)
with Session() as session:
session.add(User(username="charlie", email="charlie@example.com"))
session.commit()
for u in session.query(User).filter(User.username == "charlie"):
print(u.id, u.email) from datetime import datetime
from sqlalchemy import create_engine, Column, Integer, String, DateTime
from sqlalchemy.orm import declarative_base, sessionmaker
Base = declarative_base()
class User(Base):
__tablename__ = "users"
id = Column(Integer, primary_key=True)
username = Column(String(50), unique=True, nullable=False)
email = Column(String(100), nullable=False)
created_at = Column(DateTime, default=datetime.utcnow)
engine = create_engine("sqlite:///example.db")
Base.metadata.create_all(engine)
Session = sessionmaker(bind=engine)
with Session() as session:
session.add(User(username="charlie", email="charlie@example.com"))
session.commit()
for u in session.query(User).filter(User.username == "charlie"):
print(u.id, u.email)