我有一个简单的基于web.py的应用程序,它使用MySQLdb。我有一个处理数据库操作的类,如下所示:
class db():
def __init__(self):
db = MySQLdb.connect(host='mysql.server', user='user', passwd='pass', db='app')
self.cur = db.cursor()
def get_data(self):
sql = "SELECT * FROM foobar"
self.cur.execute(sql)
rs = self.cur
r.fetchall()
return rs
我将类实例化为soDB = db()
。然后,在另一节课上,我会提到它。
class bleh()
def blarg():
DB.get_data()
有了这样的东西,我应该在哪里关闭光标和连接?还是我完全错了?
首先,类名和变量使用不同的名称,因为类名和连接也使用了相同的名称(“db”)。
接下来,您需要将conn(在您的问题
db
第3行)定义为self.conn
。注意:如果在类bleh中有多个函数要从数据库中获取数据,请确保在函数中关闭游标和连接,该函数将在最后调用。或者您可以有一个单独的函数,它关闭光标和连接。
db.close()
表示连接,cur.close()
表示光标。http://mysql-python.sourceforge.net/MySQLdb.html
编辑:
但如果它稍微考虑一下,就不需要关闭游标。一旦变量被销毁,Python就会关闭游标,因此当类的实例不存在时——游标就会被关闭。
相关问题 更多 >
编程相关推荐