是否存在在sqlalchemy模型类中为已存在的表设置nullable的目的?

时间:2018-12-18 18:17:42

标签: python sqlalchemy

我正在创建一个已经存在的表的sqlalchemy模型类。我创建的有点像这样:

from sqlalchemy import Column
from sqlalchemy.dialects.mysql import INTEGER
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

class Foo(Base):
    __tablename__ = 'some_table'
    id = Column(INTEGER, primary_key=True)
    some_col = Column(INTEGER(display_width=11, unsigned=True), nullable=False, default=0)

但是,我可以创建所有这些对象:

neg_foo = Foo(some_col=-5)
null_foo = Foo(some_col=None)

没有任何错误。我希望在为模型设计方式创建对象时进行验证。我不相信这是不正确的,因为sqlalchemy文档说:

  

nullable –如果设置为默认值True,则表示该列为   呈现为允许NULL,否则呈现为NOT NULL。这个   参数仅在发出CREATE TABLE语句时使用。

因此,为已存在的表创建类时,声明不同的内容(例如display_widthunsignednullable等,是否有任何好处?或者,是否有一种方法可以为这些模型类的实例化对象验证这些内容?

0 个答案:

没有答案