我有这样的事情:
class A ():
[...]
class B ():
def __init__(self):
self.fubar = A()
我想通过SQLAlchemy将B存储到数据库中。我认为我需要将A
和B
定义为两个不同的表 - 适当地映射A
和B
的所有其他属性。然后,我需要将A
映射到B
作为属性,但我不知道该怎么做。
我的想法是好还是我错过了什么?知道我缺少哪些函数 - 或者文档的哪一页涵盖它?
由于
答案 0 :(得分:1)
您确实应该定义两个数据库实体A
和B
,以及这两者之间的1:1或1:n关系:
Base = declarative_base()
class A(Base):
__tablename__ = 'a'
id = Column(Integer, primary_key=True)
class B(Base):
__tablename__ = 'b'
id = Column(Integer, primary_key=True)
a_id = Column(Integer, ForeignKey('a.id'))
foobar = relationship('A')
def __init__(self):
self.foobar = A()
对于真实世界的示例,请阅读the ORM tutorial,其中您的班级A
的名称为User
,B
Address
。