我有以下场景
让我们看看我做了什么
Base = declarative_base()
class Table1(Base):
__tablename__ = 'table1'
table1id= Column(Integer, primary_key=True)
name = Column(String)
class Table2(Base):
__tablename__ = 'table2'
table2id= Column(Integer, ForeignKey('table1.table1id'))
name = Column(String)
#
table1 = Table1(name='abc')
table2 = Table2(table2id=table1.table1id)
session.add(table1)
session.add(table2 )
session.commit()
当我运行这个代码时,table1id作为15插入到table1中, 但它在表2中被称为“null”。
在Python中创建模型对象时,它还没有刷新到数据库中。对于串行列,DB负责生成新值,因此它只是在生成之前
None
。在声明中您只需阅读
^{pr2}$None
,并将其作为关键字参数传递给table2id。为了获得一个值,您需要flush对数据库的更改,因此您应该对操作重新排序:如果您要在表1和表2之间定义relationships,或者这实际上是一个inheritance hierarchy,那么SQLAlchemy也可以或多或少地为您自动执行大部分操作。在
相关问题 更多 >
编程相关推荐