class User(Base):
__tablename__ = 'users'
addresses = relationship('Address', order_by='Address.id', backref='user')
class Address(Base):
__tablename__ = 'addresses'
user_id = Column(Integer, ForeignKey('users.id'))
上面的代码展示了SQLAlchemy中一个非常常见的一对多配置。
如何从 Address
实例中获取 User
类中的 'user' 名称?我怎么知道我在 User
类中有一个名为“addresses”的属性,它表示 User
有很多地址?
我可以从 __table__.columns
属性中获取所有列信息,但似乎这些信息也存储在那里。
我们正在努力鼓励使用 inspect()
0.8 中的新 API:
>>> from sqlalchemy import inspect
>>> inspect(User).attrs.keys()
['addresses', 'id']
>>> User.addresses.property.backref
'user'
我是一名优秀的程序员,十分优秀!