Использование «aliased» в ORM SQLAlchemy

Из учебника ORM SQLAlchemy :

Вы можете управлять именами, используя конструкцию label () для скалярных атрибутов и псевдонимов для конструкций класса:

>>> from sqlalchemy.orm import aliased >>> user_alias = aliased(User, name='user_alias') >>> for row in session.query(user_alias, user_alias.name.label('name_label')).all(): ... print row.user_alias, row.name_label 

Это, кажется, намного более типизированное и намного менее читаемое, чем простые дескрипторы, основанные на классе:

 >>> for row in session.query(User, User.name).all(): ... print row.User, row.name 

Но он должен существовать по какой-то причине. Как его использовать? Какие хорошие примеры использования?

One Solution collect form web for “Использование «aliased» в ORM SQLAlchemy”

aliased() или alias() используются всякий раз, когда вам нужно использовать конструкцию SELECT ... FROM my_table my_table_alias ... в SQL, в основном при использовании одной и той же таблицы более одного раза в запросе (самостоятельно присоединяется, с или без дополнительных таблицы). В некоторых случаях вам также нужно подзапросы псевдонимов.

В документации есть пример: http://www.sqlalchemy.org/docs/orm/query.html?highlight=aliased#sqlalchemy.orm.util.AliasedClass

  • Как использовать колбу-sqlalchemy с существующей моделью sqlalchemy?
  • Несколько доменов и поддоменов в одном экземпляре Pyramid
  • SQLAlchemy необработанная подстановка параметров SQL с предложением IN
  • Flask-SQLAlchemy: несколько фильтров через одно отношение
  • Python 'startswith' эквивалент для SqlAlchemy
  • SQLAlchemy: как упорядочить результаты запроса (order_by) в поле отношений?
  • Несколько самореферентных отношений в SQLAlchemy
  • Почему значение объекта SQLAlchemy по умолчанию не доступно перед объектом?
  • Многопользовательская работа с SQLAlchemy
  • Динамическое построение фильтров в SQLAlchemy
  • Как установить SQLAlchemy на Ubuntu?
  •  
    Interesting Posts for Van-Lav
    Python - лучший язык программирования в мире.