在急需的“10 common stumbling blocks for SQLAlchemy newbies”中,第9条规定:(强调我的)
9。想要提交会话以获取对象的ID,以便可以使用它来插入相关对象
大多数非常重要的SQLAlchemy应用程序都需要使用 关系。想象一下这样的情况:你需要创建一个 公司并为其添加一名员工。你已经有了一段感情 在公司课程中称为员工。那么你将如何完成 这个任务?典型的答案如下:
- 创建公司实例
- 将公司实例添加到会话
- 刷新会话
- 使用先前已刷新的公司实例
中的company_id创建Employee实例- 将Employee实例添加到会话
- 提交会话
醇>这就是在没有SQLAlchemy的情况下如何做到这一点。但随着 SQLAlchemy这可以更轻松地完成:
- 创建公司实例
- 创建员工实例
- 将公司实例添加到会话
- 提交会话
醇>刷新会话时,公司行首先插入到 数据库。 然后,凭借关系级联,员工 实例被发现并插入到数据库中。 RDBMS 不能分辨,但对于开发者来说,后者的方法 更好。
SQLAlchemy如何推断这种关系?如果我不希望它关联两个类的声明有关系的实例,该怎么办?如果我在循环中进行插入/更新,我什么时候应该提交?