Python django.db.utils.InterfaceError:(0,';';)
我最近在开发的工具中实现了django。在做一些测试时,我得到了一个django.db.utils.InterfaceError:(0,,)错误。 我已经读到这可能是一个全局游标问题,但是我只是通过django进行查询,让它处理游标 基本上,我有关于化合物的信息,在工具执行的几个时刻,我将这些信息保存到mySQL 这段特定的代码将执行几次(到目前为止似乎工作正常),然后在执行结束时执行最后一次(全局保存)。正是在这个全局保存中,我得到了上述错误。 这个全局保存只是对所有收集的化合物进行迭代并保存它们 我能做些什么来解决这个错误Python django.db.utils.InterfaceError:(0,';';),python,mysql,django,pymysql,Python,Mysql,Django,Pymysql,我最近在开发的工具中实现了django。在做一些测试时,我得到了一个django.db.utils.InterfaceError:(0,,)错误。 我已经读到这可能是一个全局游标问题,但是我只是通过django进行查询,让它处理游标 基本上,我有关于化合物的信息,在工具执行的几个时刻,我将这些信息保存到mySQL 这段特定的代码将执行几次(到目前为止似乎工作正常),然后在执行结束时执行最后一次(全局保存)。正是在这个全局保存中,我得到了上述错误。 这个全局保存只是对所有收集的化合物进行迭代并保存
def save_to_SQL_db(self):
#####COMPOUND#####
if not self.sql_key:
cpd_django=Compound_db(cpd_level=self.get_cpd_level(),\
chemical_formula=self.get_Chemical_formula(),\
smiles=self.get_SMILES())
else:
cpd_django=Compound_db.objects.get(pk=self.sql_key)
cpd_django.cpd_level=self.get_cpd_level()
cpd_django.chemical_formula=self.get_Chemical_formula()
cpd_django.smiles=self.get_SMILES()
cpd_django.save()
错误:
回溯(最近一次调用上次):文件
“user\AppData\Local\Programs\Python\Python37-32\lib\site packages\django\db\backends\utils.py”,
第85行,in_执行
返回self.cursor.execute(sql,params)文件“user\AppData\Local\Programs\Python\Python37-32\lib\site packages\django\db\backends\mysql\base.py”,
执行中的第71行
返回self.cursor.execute(query,args)文件“user\AppData\Local\Programs\Python\Python37-32\lib\site packages\pymysql\cursors.py”,
执行中的第170行
result=self.\u查询(query)文件“user\AppData\Local\Programs\Python\Python37-32\lib\site packages\pymysql\cursors.py”,
第328行,在查询中
conn.query(q)文件“user\AppData\Local\Programs\Python\Python37-32\lib\site packages\pymysql\connections.py”,
查询中的第515行
self.\u execute\u命令(command.COM\u QUERY,sql)文件“user\AppData\Local\Programs\Python37-32\lib\site packages\pymysql\connections.py”,
第745行,in_执行_命令
raise err.InterfaceError(“(0,”)”)pymysql.err.InterfaceError:(0,”)
上述异常是以下异常的直接原因:
回溯(最近一次调用上次):文件
“MyProject/Query.py”,第1900行,在
文件
“MyProject/Query.py”,第1803行,在
多个查询文件
“MyProject/Query.py”,第1836行,在
单个查询文件
“MyProject/Query.py”,第1563行,在
查询所有数据库
self.database_保存_all()文件“MyProject/Query.py”,第243行,在
数据库\保存\全部
self.database\u saving\u mets()文件“MyProject/Query.py”,第519行,在
数据库保存方法
met.save \-u到\-SQL \-db()文件“MyProject\composite.py”,第829行,
在保存到SQL数据库中
else:文件“user\AppData\Local\Programs\Python\Python37-32\lib\site packages\django\db\models\manager.py”,
第82行,在manager_方法中
返回getattr(self.get\u queryset(),name)(*args,**kwargs)文件“user\AppData\Local\Programs\Python\Python37-32\lib\site packages\django\db\models\query.py”,
第393行,输入get
num=len(克隆)文件“user\AppData\Local\Programs\Python\Python37-32\lib\site packages\django\db\models\query.py”,
第250行,在len中
self.\u fetch\u all()文件“user\AppData\Local\Programs\Python\Python37-32\lib\site packages\django\db\models\query.py”,
第1186行,全部取数
self.\u result\u cache=list(self.\u iterable\u class(self))文件“user\AppData\Local\Programs\Python\Python37-32\lib\site packages\django\db\models\query.py”,
国际热核实验堆第54行
结果=编译器.execute_sql(chunked_fetch=self.chunked_fetch,chunk_size=self.chunk_size)文件
“user\AppData\Local\Programs\Python\Python37-32\lib\site packages\django\db\models\sql\compiler.py”,
执行sql中的第1065行
cursor.execute(sql,params)文件“user\AppData\Local\Programs\Python\Python37-32\lib\site packages\django\db\backends\utils.py”,
第100行,执行中
return super().execute(sql,params)文件“user\AppData\Local\Programs\Python\Python37-32\lib\site packages\django\db\backends\utils.py”,
第68行,执行中
返回self.\u使用包装器(sql、参数、many=False、executor=self.\u execute)文件执行self.\u
“user\AppData\Local\Programs\Python\Python37-32\lib\site packages\django\db\backends\utils.py”,
第77行,使用包装器执行
返回执行器(sql,params,many,context)文件“user\AppData\Local\Programs\Python\Python37-32\lib\site packages\django\db\backends\utils.py”,
第85行,in_执行
返回self.cursor.execute(sql,params)文件“user\AppData\Local\Programs\Python\Python37-32\lib\site packages\django\db\utils.py”,
第89行,在退出中
提高dj_exc_值。使用exc_值文件“user\AppData\Local\Programs\Python\Python37-32\lib\site packages\django\db\backends\utils.py”中的“回溯(traceback)”,
第85行,in_执行
返回self.cursor.execute(sql,params)文件“user\AppData\Local\Programs\Python\Python37-32\lib\site packages\django\db\backends\mysql\base.py”,
执行中的第71行
返回self.cursor.execute(query,args)文件“user\AppData\Local\Programs\Python\Python37-32\lib\site packages\pymysql\cursors.py”,
执行中的第170行
result=self.\u查询(query)文件“user\AppData\Local\Programs\Python\Python37-32\lib\site packages\pymysql\cursors.py”,
第328行,在查询中
conn.query(q)文件“user\AppData\Local\Programs\Python\Python37-32\lib\site packages\pymysql\connections.py”,
查询中的第515行
self.\u execute\u命令(command.COM\u QUERY,sql)文件“user\AppData\Local\Programs\Python37-32\lib\site packages\pymysql\connections.py”,
第745行,in_执行_命令
raise err.InterfaceError(“(0,”))django.db.utils.InterfaceError:(0,)
我知道,这不是最佳答案,但对我来说,尝试关闭3次连接,然后再次重新连接起作用
try:
connections.close_all()
except:
try:
connections.close_all()
except:
try:
connections.close_all()
except:
pass
还尝试在settings.py中将CONN_MAX_AGE设置为None,但没有成功