【发布时间】:2016-07-14 20:07:37
【问题描述】:
我在这里阅读了一些 sqlalchecmy 的答案,但我仍然不清楚两种情况。
这些到底是什么意思,它们之间有什么区别?
-
为列设置默认的 False 和可为空的 True
check = Column(Boolean, default=False, nullable=True) -
为列设置默认 True 和可为空的 False
check = Column(Boolean, default=True, nullable=False)
我的想法很混乱。谢谢!
编辑:
这是我试图实现的逻辑。
class Checking(Base):
__tablename __ = 'Test'
check=Column(Boolean, nullable=True)
def __init__(self, check):
self.check = check
def test(self):
if self.check:
print("Success")
else:
print("Failed")
当check 变为False 时它始终有效,即打印“失败”但当check 变为True 时它不工作。它在那里失败了。
当列设置为 default=False 时也会发生同样的情况。
如果我将列设置为default=True,当列变为True 时它正在工作,但当列变为False 时失败--表示上述情况反之亦然。
PS:这不是实际代码,但它与我试图实现的实际代码相似。
【问题讨论】:
-
null=True 在等于 False 时允许空值,因此不允许任何列值为 null/None,如果您不传递值,则默认为列提供默认值
标签: python database python-3.x sqlalchemy flask-sqlalchemy