Python SQLalchemy无法将None转换为字符串

Python SQLalchemy无法将None转换为字符串,python,mysql,sqlalchemy,Python,Mysql,Sqlalchemy,我有以下简化模型: from sqlalchemy import Column, String from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() class Example(Base): __tablename__ = 'example' source = Column(String(32), nullable=False) 当我执行以下操作时:

我有以下简化模型:

from sqlalchemy import Column, String
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()

class Example(Base):
        __tablename__ = 'example'

        source = Column(String(32), nullable=False)
当我执行以下操作时:

from sqlalchemy.orm import sessionmaker
from sqlalchemy import create_engine
engine = create_engine(
    "mysql+pymysql://{}:{}@{}/{}?charset=utf8".format(
        'user', 'password', 'localhost', 'db'),
    encoding='utf8',   echo=False)
DBSession = sessionmaker(bind=engine)
session = DBSession()
source = None
session.add(Example(source=source))
mysql表定义:

CREATE TABLE `example` (
  `source` varchar(32) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
它将“None”作为源代码插入mysql

但是我想要的是尝试导入一个空值并抛出一个mysql异常


哪种方法最好?

无法复制。请提供一个可以复制粘贴并观察铁质行为的标签。换句话说,使用您的(不完整的)模型和示例代码MySQL确实会产生错误。我通过导入改进了这个问题,MySQL模式定义仍然无法重现。按预期引发完整性错误。也无法复制。您使用哪个版本?我使用的是sqlalchemy 1.1.13无法复制。请提供一个可以复制粘贴并观察铁质行为的标签。换句话说,使用您的(不完整的)模型和示例代码MySQL确实会产生错误。我通过导入改进了这个问题,MySQL模式定义仍然无法重现。按预期引发完整性错误。也无法复制。您使用哪个版本?我使用的是sqlalchemy 1.1.13