Я новичок в программировании на Python.Я пытаюсь подключиться к MySQL из Python.Моя цель - извлечь rows
из table
, когда пользователь щелкнет по «View» button
в графическом интерфейсе, и отобразить их на listbox
, который я разработал с помощью компоновщика Page gui для Python.Я поместил коды подключения к базе данных в функцию init сгенерированного файла Tkinter и создал функцию showdetails(self)
для обработки извлечения строк из таблицы.Я уверен, что соединение с базой данных работает.Однако, когда я запускаю его, я получаю object of type 'int' has no len()
error
.Я действительно не знаю, что может быть ответственным.Мне нужна помощь, пожалуйста.
Я попытался написать код в файле, отличном от файла Tkinter, с небольшими изменениями, и он отлично работает.Строки в указанной таблице были получены в консоли
Некоторые строки моих кодов
import pymysql.cursors
def showdetails(self):
try:
with self.conn.cursor() as cursor:
sql = cursor.execute("SELECT * FROM `students`")
for i in range(0, len(sql)):
self.listBox.insert(i, sql.rows[i])
except Exception as e:
print(e)
def __init__(self, top=None):
# connect to database
try:
self.conn = pymysql.connect('localhost', 'root', 'victor16', 'students', charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor)
except Exception as e:
print(e, ': could not connect to database')
Я хочу, чтобы listbox
отображал rows
из базы данных, но это не так.