Я использую sqlalchemy уже несколько лет взамен моделей Django.Мне показалось очень удобным иметь пользовательские методы, прикрепленные к этим моделям
, т. Е.
class Widget(Base):
__tablename__ = 'widgets'
id = Column(Integer, primary_key=True)
name = Column(Unicode(100))
def get_slug(self, max_length=50):
return slugify(self.name)[:max_length]
Есть ли снижение производительности при выполнении таких операций, как session.query(Widget)
, если модель имеет несколько десятков сложныхметоды (50-75 строк)Загружаются ли они в память для каждой возвращаемой строки, и было бы более эффективно переместить некоторые из этих менее используемых методов в вспомогательные функции и импортировать их по мере необходимости?
def some_helper_function(widget):
':param widget: a instance of Widget()'
# do something
Спасибо!