Python SQLALCHEMY设置默认值False可为null True

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

我在这里读了一些SQLALCHECM的答案,但我仍然不清楚两种情况

这些词的确切含义是什么?它们之间的区别是什么

  • 为列设置默认值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情况。我无法总结一下:(这确实很长。但我可以分享我试图实现的逻辑。我不介意编辑我的问题。谢谢:)