使用SQLAlchemy打印插入查询

时间:2017-10-31 16:26:55

标签: python postgresql sqlalchemy flask-sqlalchemy

我知道如果我尝试使用ORM进行选择查询,我可以使用print方法打印要生成的SQL:

print session.query(MyModel)应该返回select * from MyModel(确切的SQL可能会有所不同,但想法就在那里)。

我现在有一段代码,我在其中创建一个父对象,循环一些数据以创建连接到具有relationship的父对象的子对象,然后调用session.add(parent_object)后跟{{1 }}

除非产生错误,否则我认为无法生成错误。

有没有办法查看用于插入数据的SQL语句?

产生的错误是:

session.commit()

其中为我arg = (<class 'sqlalchemy.exc.ProgrammingError'>, ProgrammingError("(pg8000.core.ProgrammingError) (u'ERROR', u'ERROR', u'22001'... too long for type character varying(10)', u'varchar.c', u'624', u'varchar')",), <traceback object at 0x10c98bb00>) 唯一的列插入的值为varchar(10)

1 个答案:

答案 0 :(得分:2)

您可以启用sqlalchemy internal logger输出  SQL查询:

{"name" : "Jim"}