SQLAlchemy在一行中创建对象?



我正在使用SQLAlchemy,在Django或其他语言中,可以在一行中创建、填充和提交对象。

Foobar.objects.create(x=0, y=1)

是否可以在SQLAlchemy中执行相同的操作?我总是要做以下事情。

foobar = Foobar(x=0, y=1)
session.add(foobar)
session.commit()
自动提交能解决这个问题吗?

你可以用create方法创建一个mixin类来做这个,并让你所有的模型都继承它——这基本上就是Django所做的。但从根本上说,这是关于不同的架构模式。

Django(以及Ruby on Rails和许多其他框架)使用活动记录模式-如果你愿意,可以"Save as you go"。SQLAlchemy使用工作单元模式,它更像是"对所有模型进行更改,然后在最后一刻保存它们">

最新更新