我是python中的新手。我想要做的是显示我的数据库的所有用户。为此,我使用静态方法,但它不起作用。 这是我的代码:
@classmethod
def users_list(cls):
cls.cursor.execute("SELECT * FROM users")
data = cls.cursor.fetchall()
for row in data:
print("Id : {}, name :{}, fistname :{}, genre :{}, address :{},
city :{}".format(row[0], row[1], row[2], row[3], row[4],
row[5]))
users_list = classmethod(users_list)
当我执行:users.users_list()
时,我收到了此错误
cls.cursor.execute("SELECT * FROM users")
AttributeError: type object 'Users' has no attribute 'cursor'
答案 0 :(得分:0)
错误表示users
类型的对象Users
没有cursor
属性。基于这段代码,该对象/类确实没有cursor
属性,因此期望cls.cursor.execute(...)
抛出异常。
答案 1 :(得分:0)
我想要做的是在不创建对象的情况下显示我的数据库信息。例如,如果我的班级是"用户"我的显示方法是" users-list"我想这样做:users.display()
这是完整的代码
from db_conn import * # Database class importation. That class only contains database connection
class users:
def __init__(self):
"""Default constructor"""
self.cursor = db_con.db.cursor() # Database initialization
@classmethod
def users_list(cls):
cls.cursor.execute("SELECT * FROM users")
data = cls.cursor.fetchall()
for row in data:
print("Id : {}, name :{}, fistname :{}, genre :{}, address :{},
city :{}".format(row[0], row[1], row[2], row[3], row[4],
row[5]))
users_list = classmethod(users_list)
# Test
if __name__ == "__main__":
users.users_liste()