怎么 conn.close()没有成功关闭数据库连接
# 具体遇到的问题
怎么在Finally 后面 conn.close()没有成功关闭数据库连接,仍然存在conn 连接信息
如果这样,Finally 和 except中的判断语句就没有意义了。问题是出在哪里
麻烦老师来回答一下
# 报错信息的截图
# 相关课程内容截图
# 尝试过的解决思路和结果
# 粘贴全部相关代码,切记添加代码注释(请勿截图)
from mysql_db import pool
class Users(object):
#log in
def user_log_in(self,user_name,password):
try:
conn=pool.get_connection()
cursor=conn.cursor()
print(dir())
sql='SELECT count(*) ' \
'FROM users ' \
'WHERE user_name=%s AND password=%s '
cursor.execute(sql,(user_name,password))
count=cursor.fetchone()[0]
return True if count==1 else False
except Exception as e:
if 'conn' in dir():
conn.close()
print(e)
finally:
if 'conn' in dir():
conn.close()
print('Finally',dir())
print('实例化前',dir())
user=Users()
print(user.user_log_in('admin','123'))
print('False 后的',dir())在这里输入代码,可通过选择【代码语言】突出显示
30
收起
正在回答
2回答
同学,你好,
1、close()是关掉了数据库连接,并不是删除conn,因此还是会存在的,但是无法连接数据库的
例:关闭连接后是不可以再查询数据的
2、当前位置使用了连接池,在连接池中close()会在当前的数据库连接使用完毕之后,将该连接归还到数据库连接池。
Python全栈工程师2020
- 参与学习 人
- 提交作业 5211 份
- 解答问题 2433 个
Facebook曾声称“只招全栈工程师”!全栈用人需求猛增,市面人才紧缺。 0基础进击Python全栈开发,诱人薪资在前方!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星