我正在创建一个已经存在的表的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_width
,unsigned
,nullable
等,是否有任何好处?或者,是否有一种方法可以为这些模型类的实例化对象验证这些内容?