Python 使用 mvc - sqlite 数据库而不是通过 id 检索单行,检索整个 table
Python with mvc - sqlite database instead of retrieving single row by id, retrieving whole table
我已经编写了应该使用员工 ID 从数据库中检索一些员工数据的函数。不幸的是,该函数确实检索了数据,但它检索的不是一名员工,而是整个 table。我该如何解决?
型号
def get_employee_data_by_id(self, id):
connection = sqlite3.connect("employees_database.db")
cursor = connection.cursor()
cursor.execute("""
SELECT name, surname from employees WHERE ID = id"""), (id)
data = cursor.fetchall()
connection.commit()
cursor.close()
connection.close()
return data
控制器
def get_employee_data_by_id(self, id):
data = self.model.get_employee_data_by_id(id)
print(type(data))
for i in data:
self.view.employee_data.append(i)
print(i)
查看
def show_frame1(self, event=None):
self.main_frame.grid_forget()
self.edit_employee_frame.grid()
self.controller.get_employee_data_by_id(2)
下面一行(注意(id)
在cursor.execute(...)
外面):
cursor.execute("""
SELECT name, surname from employees WHERE ID = id"""), (id)
应更改为(使用占位符):
cursor.execute("""SELECT name, surname from employees WHERE ID = ?""", (id,))
我已经编写了应该使用员工 ID 从数据库中检索一些员工数据的函数。不幸的是,该函数确实检索了数据,但它检索的不是一名员工,而是整个 table。我该如何解决?
型号
def get_employee_data_by_id(self, id):
connection = sqlite3.connect("employees_database.db")
cursor = connection.cursor()
cursor.execute("""
SELECT name, surname from employees WHERE ID = id"""), (id)
data = cursor.fetchall()
connection.commit()
cursor.close()
connection.close()
return data
控制器
def get_employee_data_by_id(self, id):
data = self.model.get_employee_data_by_id(id)
print(type(data))
for i in data:
self.view.employee_data.append(i)
print(i)
查看
def show_frame1(self, event=None):
self.main_frame.grid_forget()
self.edit_employee_frame.grid()
self.controller.get_employee_data_by_id(2)
下面一行(注意(id)
在cursor.execute(...)
外面):
cursor.execute("""
SELECT name, surname from employees WHERE ID = id"""), (id)
应更改为(使用占位符):
cursor.execute("""SELECT name, surname from employees WHERE ID = ?""", (id,))