Python psycopg2,TypeError:execute()接受2个位置参数,但给出了3个
我正在使用psycopg2库为数据库构建一个类,以便与PostgreSQL数据库接口。我可能对数据库也有误解,因为我读到在同一个类中定义连接和游标不是一个好的设计。如果能解释一下,那就太好了,因为我读过使用单例模式和不使用单例模式的混合反应 db.pyPython psycopg2,TypeError:execute()接受2个位置参数,但给出了3个,python,flask,psycopg2,Python,Flask,Psycopg2,我正在使用psycopg2库为数据库构建一个类,以便与PostgreSQL数据库接口。我可能对数据库也有误解,因为我读到在同一个类中定义连接和游标不是一个好的设计。如果能解释一下,那就太好了,因为我读过使用单例模式和不使用单例模式的混合反应 db.py class Database: def __init__(self, db, user, password, port, host): self.db = db self.user = user
class Database:
def __init__(self, db, user, password, port, host):
self.db = db
self.user = user
self.password = password
self.port = port
self.host = host
def connect(self):
self.connection = psycopg2.connect(
database=self.db,
user=self.user,
password=self.password,
port=self.port,
host=self.host
)
self.cursor = self.connection.cursor()
def executeQuery(self, query, values=None):
print('query:', query)
if values:
self.cursor.execute(query, values)
else:
self.cursor.execute(query)
self.connection.commit()
def close(self):
self.cursor.close()
self.connection.close()
@staticmethod
def create(id, name, email, profile_pic):
db.executeQuery(
"INSERT INTO users (id, name, email, profile_pic) VALUES (%s,%s,%s,%s);", (id, name, email, profile_pic)
)
所以我要做的是我有一个数据库类来保持连接和游标的状态。我将有其他类,这些类将基本上与数据库类交互。例如:
users.py
class Database:
def __init__(self, db, user, password, port, host):
self.db = db
self.user = user
self.password = password
self.port = port
self.host = host
def connect(self):
self.connection = psycopg2.connect(
database=self.db,
user=self.user,
password=self.password,
port=self.port,
host=self.host
)
self.cursor = self.connection.cursor()
def executeQuery(self, query, values=None):
print('query:', query)
if values:
self.cursor.execute(query, values)
else:
self.cursor.execute(query)
self.connection.commit()
def close(self):
self.cursor.close()
self.connection.close()
@staticmethod
def create(id, name, email, profile_pic):
db.executeQuery(
"INSERT INTO users (id, name, email, profile_pic) VALUES (%s,%s,%s,%s);", (id, name, email, profile_pic)
)
这是一个对数据库进行插入查询的函数。调用此函数时,我会从标题中显示错误。基本上,我遵循以下文件:
但我没办法让它工作。任何帮助都将不胜感激,谢谢 通过
def create(id,name,email,profile_pic)
中的id,name,email,profile_pic
验证实际传入的内容。