sql >> Databáze >  >> RDS >> Mysql

Aliasing názvů polí v modelu SQLAlchemy nebo podkladové tabulce SQL

Zde je elegantní řešení popsané v Dokumenty SQLAlchemy , který dělá přesně to, co chcete:

from sqlalchemy.orm import synonym
class User():
    __tablename__ = 'Users'
    username = Column(STRING, primary_key=True)
    id = synonym('username')

Funguje přesně podle očekávání:

>>> john = session.query(User).filter_by(id='John Doe').first()
>>> print([john.id, john.username])
['John Doe', 'John Doe']
>>> john.id is john.username
True

Mimochodem, User class musí být podtřídou SQLAlchemy declarative_base() třída:

from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class User(Base):
    ...

Přejít na dokumenty pro další referenci.




  1. Nápověda k dotazu MySQL Cross-Table Count(*).

  2. Různé způsoby monitorování skupin dostupnosti serveru SQL Server AlwaysOn

  3. Generování vložení sql do pro Oracle

  4. Funkce SUBSTR() v Oracle