代码之家  ›  专栏  ›  技术社区  ›  Pedro Queirós

django.db.utils.InterfaceError:(0,'')

  •  1
  • Pedro Queirós  · 技术社区  · 6 年前

    我最近在一个正在开发的工具中实现了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”, 返回self.cursor.execute(sql,params)文件“user\AppData\Local\Programs\Python\Python37-32\lib\site packages\django\db\backends\mysql\base.py”, 返回self.cursor.execute(query,args)文件“user\AppData\Local\Programs\Python37-32\lib\site packages\pymysql\cursors.py”, result=self.\u查询(query)文件“user\AppData\Local\Programs\Python\Python37-32\lib\site packages\pymysql\cursors.py”, 第328行,查询中 第515行,查询中 self._execute_command(command.COM_QUERY,sql)文件“user\AppData\Local\Programs\Python37-32\lib\site packages\pymysql\connections.py”, 第745行,in_execute_命令

    上述异常是以下异常的直接原因:

    回溯(最近的最后一次调用):文件 “MyProject/Query.py”,第1900行,in 文件 多个查询文件 单个查询文件 查询所有数据库 self.database_saving_all()文件“MyProject/Query.py”,第243行,在 self.database_saving_mets()文件“MyProject/Query.py”,第519行,在 其他:文件“user\AppData\Local\Programs\Python\Python37-32\lib\site packages\django\db\models\manager.py”, 82号线,经理法 num=len(克隆)文件“user\AppData\Local\Programs\Python\Python37-32\lib\site packages\django\db\models\query.py”, 第250行,英寸 伦恩 self._fetch_all()文件“user\AppData\Local\Programs\Python\Python37-32\lib\site packages\django\db\models\query.py”, 第1186行,全部取回 self._result_cache=list(self._iterable_class(self))文件“user\AppData\Local\Programs\Python\Python37-32\lib\site packages\django\db\models\query.py”, 54号线,输入 iter results=compiler.execute_sql(chunked_fetch=self.chunked_fetch,chunk_size=self.chunk_size)文件 执行sql中的第1065行 cursor.execute(sql,params)文件“user\AppData\Local\Programs\Python\Python37-32\lib\site packages\django\db\backends\utils.py”, 第100行,执行中 第68行,执行中 返回self._execute_with_wrappers(sql,params,many=False,executor=self._execute)文件 “user\AppData\Local\Programs\Python\Python37-32\lib\site packages\django\db\backends\utils.py”, 第77行,in_execute_with_wrappers 返回executor(sql,params,many,context)文件“user\AppData\Local\Programs\Python\Python37-32\lib\site packages\django\db\backends\utils.py”, 返回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(traceback)”, 第85行,执行中 返回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\Python37-32\lib\site packages\pymysql\cursors.py”, 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行,查询中 引发错误InterfaceError(“(0,”))django.db.utils.InterfaceError:(0,“)

    1 回复  |  直到 6 年前
        1
  •  0
  •   sboda    6 年前

     try:
         connections.close_all()
     except:
         try:
             connections.close_all()
         except:
             try:
                 connections.close_all()
             except:
                 pass
    

    还试图在settings.py中将CONN_MAX_AGE设置为None,但这不起作用。