我正在使用Flask和SQLAlchemy创建一个Web应用程序。我想要做的是在web上标出默认值。但输出变为无。专栏是这样的。
n = db.Column(db.Integer, default=0)
我也尝试了server_default='0'
和server_default=text('0')
,但这些输出也是无。
我该如何解决这个问题?
答案 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问题。