sql >> Database >  >> RDS >> Mysql

Aliasing veldnamen in SQLAlchemy-model of onderliggende SQL-tabel

Hier is een elegante oplossing beschreven in de SQLAlchemy Docs , die precies doet wat je wilt:

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

Het werkt precies zoals verwacht:

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

Trouwens, de User klasse moet een subklasse zijn van SQLAlchemy declarative_base() klas:

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

Ga naar docs voor verdere referentie.




  1. tabelkop wordt herhaald vanuit een for-lus in php

  2. Oracle 10g - optimaliseren WHERE IS NOT NULL

  3. Praktische tips voor URL's met spatie en speciale tekens

  4. Kolom mag niet null zijn Mysql