如何使用SQLAlchemy声明性语法指定关系?

时间:2008-10-30 14:41:51

标签: python sqlalchemy

我找不到任何关于如何指定关系的正确文档 使用SQLAlchemy的声明性语法..是否不受支持?也就是说,我应该使用“传统”语法吗? 我正在寻找一种方法来指定更高级别的关系,避免弄乱外键等等。我想声明“addresses = OneToMany(Address)”并让框架处理细节..我知道Elixir可以做到这一点,但我想知道“普通”SQLA是否也可以做到这一点 谢谢你的帮助!

2 个答案:

答案 0 :(得分:3)

假设您指的是the declarative plugin,我将要说明的所有内容都带有示例:

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

答案 1 :(得分:0)

查看Declarative docs的“配置关系”部分。不像“OneToMany”那么高,但比完全指定关系更好。

class Address(Base):
    __tablename__ = 'addresses'

    id = Column(Integer, primary_key=True)
    email = Column(String(50))
    user_id = Column(Integer, ForeignKey('users.id'))