sqlalchemy允许我插入除定义的列类型之外的数据。
from sqlalchemy import create_engine
from sqlalchemy import Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
import sqlite3
Base = declarative_base()
engine = create_engine("sqlite:///c:\\sample.sqlite")
class Model(Base):
__tablename__='just_names'
id = Column(Integer, primary_key=True)
name = Column(String)
Base.metadata.create_all(engine)
session=sessionmaker(bind=engine)
s= session()
s.add(Model(name='Naruto'))
s.add(Model(name=1)) # here column name should be string, but integer is being allowed without any error.
s.commit()
注意:这里回答了类似的问题。 How can I verify Column data types in the SQLAlchemy ORM? 他们通过导入事件和验证来解决它。
如果记录与相应的列类型冲突,是否还有另一种更短的方法来验证数据并引发错误?