SQLAlchemy:默认值的输出为None

时间:2018-03-29 04:22:23

标签: python sqlalchemy

我正在使用Flask和SQLAlchemy创建一个Web应用程序。我想要做的是在web上标出默认值。但输出变为无。专栏是这样的。

n = db.Column(db.Integer, default=0)

我也尝试了server_default='0'server_default=text('0'),但这些输出也是无。 我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

默认值仅在发出INSERT或UPDATE后设置,即在将会话刷新到db之后设置。如果您看到None yourobject.n的值,那么我猜你还没有提交更改。

再次测试,但这次在创建对象实例后,添加并提交它:

>>> instance = MyDBModel()
>>> instance.n is None
True
>>> db.session.add(instance)
>>> db.session.commit()
>>> instance.n is None
False
>>> print(instance.n)
0

如果出于某种原因需要在之前应用列默认值,请将更改刷新到数据库,请参阅涵盖该主题的this问题。