PostgreSQL Python:关闭连接
发布时间:2020-12-13 18:05:41 所属栏目:百科 来源:网络整理
导读:我用 Python制作了一个游戏服务器,它使用psycopg2连接到PostgreSQL数据库.我见过一些例子,我已经看到,当创建与数据库的连接时,应该在完成查询时关闭连接,例如对于每个客户端: #create connection to dbcon = psycopg2.connect (database = 'testdb',user =
我用
Python制作了一个游戏服务器,它使用psycopg2连接到PostgreSQL数据库.我见过一些例子,我已经看到,当创建与数据库的连接时,应该在完成查询时关闭连接,例如对于每个客户端:
#create connection to db con = psycopg2.connect (database = 'testdb',user = 'janbodnar') cur = con.cursor () #process query . . . #close connection con.close () 好的,当我启动我的服务器时,我有这个: 在我的课堂里 def __init __ (self): #create connection to db con = psycopg2.connect (database = 'testdb',user = 'janbodnar') cur = con.cursor () # to all customers ... def query(self): #process query,for example ... cur.execute ("DROP TABLE IF EXISTS Cars") #the connection never closes 也就是说,我对所有客户的所有查询使用相同的连接对象,并且从不关闭连接,这看起来比打开和关闭每个客户端的连接更好,我的服务器显然运行良好.你想到这个吗?
这可能有效但不好.问题:如何为会话设置日期时间格式?如何处理交易?临时表?如何处理错误?另见:
How can I pool connections using psycopg and gevent?
对于这样的事情,您可以使用连接池.这样,当您从新客户端(新网络连接)开始时,您将从池中获得数据库连接.使用它而不是关闭连接后,释放它并返回池.现在它可能被其他线程使用. 如果您的连接以某种方式被破坏,它可能是简单的关闭而不是返回池.每个线程都可以使用事务,您可以更改日期时间格式等会话设置. 我看到有http://initd.org/psycopg/docs/pool.html PS在你的方法中你应该使用self.con和self.cur. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |