Python SQLALCHEMY设置默认值False可为null True
我在这里读了一些SQLALCHECM的答案,但我仍然不清楚两种情况 这些词的确切含义是什么?它们之间的区别是什么Python SQLALCHEMY设置默认值False可为null True,python,database,python-3.x,sqlalchemy,flask-sqlalchemy,Python,Database,Python 3.x,Sqlalchemy,Flask Sqlalchemy,我在这里读了一些SQLALCHECM的答案,但我仍然不清楚两种情况 这些词的确切含义是什么?它们之间的区别是什么 为列设置默认值False和可为null的True check=Column(布尔值,默认值=False,可空值=True) 为列设置默认值True和可为null的False check=Column(布尔值,默认值=True,可空值=False) 我的想法令人困惑。谢谢 编辑: 这是我试图实现的逻辑 class Checking(Base): __tablename
- 为列设置默认值False和可为null的True
check=Column(布尔值,默认值=False,可空值=True)
- 为列设置默认值True和可为null的False
check=Column(布尔值,默认值=True,可空值=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:这不是实际代码,但与我试图实现的实际代码类似。default指定列为空时的默认值,因此default=True仅对布尔列有意义,如果列为空,则将插入True
nullable指定列中的值是否可以为NULL(或在python None中为NULL)(如果为空,则为空,而不指定默认值)NULL=True允许空值,当它等于False时则不允许空值,因此任何列值都不能为NULL/None,如果不传递值,则默认为列提供默认值(布尔值,默认值=False,可空值=True)当未指定任何值时,默认值将设置为False,即,nullable=True,对吗?因为nullable=True允许列为NULL。是的,但如果nullable=False,也会发生这种情况。但是当列变为True时,即当我为其指定某个值或True时,我的代码失败。它仅适用于False或NULL情况。我无法总结一下:(这确实很长。但我可以分享我试图实现的逻辑。我不介意编辑我的问题。谢谢:)