代码之家  ›  专栏  ›  技术社区  ›  Joril

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

  •  3
  • Joril  · 技术社区  · 16 年前

    我找不到任何有关如何指定关系的适当文档 使用sqlacalchemy的声明性语法..不支持吗?也就是说,我应该使用“传统”语法吗?
    我正在寻找一种在更高层次上明确关系的方法,避免与外国钥匙等混淆。我只想声明“addresses=onetomany(address)”,让框架处理细节。我知道长生不老药能做到这一点,但我想知道“普通”的sqla是否也能做到。
    谢谢你的帮助!

    2 回复  |  直到 15 年前
        1
  •  3
  •   Ali Afshar    16 年前

    假设你指的是 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'))
    
        2
  •  0
  •   Gregg Lind    15 年前

    查看的“配置关系”部分 Declarative docs . 没有“一个托马斯”那么高的级别,但比完全指定关系要好。

    class Address(Base):
        __tablename__ = 'addresses'
    
        id = Column(Integer, primary_key=True)
        email = Column(String(50))
        user_id = Column(Integer, ForeignKey('users.id'))