如何使用SQLAlchemy声明性语法指定关系?
我找不到关于如何使用SQLAlchemy的声明式语法来指定关系的合适文档。这是不支持的吗?也就是说,我应该使用“传统”的语法吗?
我希望能以更高的层次来指定关系,避免去处理外键等复杂的东西。我想直接声明“addresses = OneToMany(Address)”,然后让框架来处理细节。我知道Elixir可以做到这一点,但我在想“普通”的SQLAlchemy是否也能做到。
谢谢你的帮助!
2 个回答
0
看看声明式文档中的“配置关系”部分。这个内容的层次不如“一对多”那么简单,但比完全详细说明关系要好一些。
class Address(Base):
__tablename__ = 'addresses'
id = Column(Integer, primary_key=True)
email = Column(String(50))
user_id = Column(Integer, ForeignKey('users.id'))
3
假设你指的是声明式插件,我接下来要说的内容都有文档和示例说明:
class User(Base):
__tablename__ = 'users'
id = Column('id', Integer, primary_key=True)
addresses = relation("Address", backref="user")
class Address(Base):
__tablename__ = 'addresses'
id = Column('id', Integer, primary_key=True)
user_id = Column('user_id', Integer, ForeignKey('users.id'))