Python:从类中传回一个dbi实例的游标

时间:2013-06-26 11:24:48

标签: python postgresql psycopg2

尝试设置一个将数据库光标传递回来的类,我可以在各种函数中使用它。以下代码不起作用

class create_db(object):   
    def __init__(self):
        import psycopg2 as pq
        self.cn = pq.connect('dbname=mydb user=me')
        self.cr = self.cn.cursor()

我希望能够做的是

cur = create_db()
cur.execute('SELECT * FROM table1;')

如何更改代码以解决此问题。

1 个答案:

答案 0 :(得分:1)

根据你想做的事情

class create_db(object):

    def __init__(self):
        import psycopg2 as pq
        self.cn = pq.connect('dbname=mydb user=me')
        self.cr = self.cn.cursor()

    def execute(self, query, *args):

        results = self.cr.execute(query, args)

        return results

现在您可以运行类似

的内容
cur.execute('SELECT * FROM table1 WHERE column = ?;', (42,))

我不记得我的头脑,但我想你会想要在SQL语句的末尾省略;