首页 > 解决方案 > PYTHON:将 psycopg2 游标作为参数传递给另一个类

问题描述

所以我的目标是将数据插入数据库。我的主代码中有一个 psycopg2 连接池,我想在另一个类中使用该池的连接之一,所以我尝试将光标作为参数传递。这里我创建了连接池:

conn_pool = psycopg2.pool.ThreadedConnectionPool(1, 20, user="",
                                                 password="",
                                                 host="",
                                                 port="",
                                                 database="")

这里我从 User 类调用插入函数。

conn = conn_pool.getconn()
cur = conn.cursor()
result = users[thread_id].insert(cur, data)
conn_pool.putconn(conn)

这是 User 类中的插入函数

    def insert(self, cur, data):
        username = data["data"]["username"]
        password = data["data"]["password"]
        cur.execute(f"select user_id from users where username like '{username}'")
        raw = cur.fetchone()
        if raw is not None:
            dataj = {"title": "signup_feedback",
                     "feedback": 0}
            self.connection.send(json.dumps(dataj).encode())
            return False
        print("Signup attempt")
        cur.execute("insert into users (username, password, balance, logged_in) " +
                    f"values ('{username}', '{password}', 5000, false)")
        dataj = {"title": "signup_feedback",
                 "feedback": 1}
        self.connection.send(json.dumps(dataj).encode())
        return True

它没有用。它没有引发错误,它只是没有做任何事情。有没有办法做到这一点?我也愿意接受其他想法。谢谢你的帮助!

标签: pythonpython-3.xclassparameter-passingpsycopg2

解决方案


推荐阅读