У меня есть таблица SQLAlchemy, определенная следующим образом:
user = Table('user', MetaData(),
Column('id', Integer),
Column('first_name', String),
Column('last_name', String))
Мне часто нужно указывать полное имя пользователя во время запроса, например:
sql = (select([
user.c.id,
(user.c.first_name + user.c.last_name).label('full_name')
]).where(user.c.id == 123))
Поскольку используется полное имяво многих местах такой код имеет много копий.
Интересно, есть ли способ в SQLAlchemy, я могу создать вычисляемый столбец, чтобы я мог удобно использовать его так же, как другие нормальные столбцы,SQLAlchemy автоматически преобразует его в (user.c.first_name + user.c.last_name).label('full_name')
всякий раз, когда я ссылаюсь user.c.full_name
sql = (select([
user.c.id,
user.c.full_name
]).where(user.c.id == 123))
Я искал и нашел там какое-то решение в SQLAlchemy ORM, используя column_property или hybrid_property.Разница в моем случае заключается в том, что я могу использовать только SQLAlchemy Core .