Skip to main content

ORM режим

Таблица это класс с требованиями:

  • Потомок объекта, возвращаемого функцией declarative_base
  • Включает __tablename__ с именем таблицы
  • Включает 1+ атрибутов, являющихся объектом Column
  • При определении не включает имя столбца в конструкторе Column, имя столбца = имя атрибута
  • 1+ атрибутов определяют первичный ключ
  • __table_args__ свойства таблицы (ограничения,...)
from sqlalchemy import Table, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
			
	Base = declarative_base() 
	
	class Cookie(Base): 
		__tablename__ = 'cookies' 
		__table_args__ = (CheckConstraint('quantity >= 0', name='quantity_positive'),)
		cookie_id = Column(Integer(), primary_key=True) 
		cookie_name = Column(String(50), index=True)
		quantity = Column(Integer())