L'utilisation de “alias” dans SQLAlchemy ORM

De la SQLAlchemy ORM Tutoriel:

Vous pouvez contrôler les noms à l'aide de l'étiquette() construire scalaires d'attributs et un alias pour la classe des constructions:

>>> 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

Cela semble être beaucoup plus à taper et beaucoup moins lisible que la plaine de la classe instrumentation descripteurs:

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

Mais elle doit exister pour une raison. Comment doit-il être utilisé? Quels sont les bons cas d'utilisation?

OriginalL'auteur Wang Dingwei | 2011-03-18