根据您提供的代码,看起来您遇到了一个错误:NameError: name 'cursor' is not defined
。这是由于在query_score
方法中,没有定义变量cursor
。
要解决这个问题,您可以将数据库连接和游标对象作为类的属性,并在初始化方法中进行初始化。然后,您可以在其他方法中使用该游标对象。
以下是修改后的代码示例:
import tkinter as tk
from tkinter import messagebox
import pymysql
class AthletePage:
def __init__(self, parent_window, username, password):
# 销毁传入的窗口并创建新窗口
parent_window.destroy()
self.window = tk.Tk()
self.window.title("运动员查询页面")
self.window.geometry('500x400')
self.username = username
self.password = password
# 创建菜单选项
db = pymysql.connect(
host='localhost',
user='root',
password='123456',
database='ManageSystem',
cursorclass=pymysql.cursors.DictCursor
)
self.db = db
self.cursor = db.cursor()
sql = 'SELECT name FROM users WHERE username=%s AND password=%s'
self.cursor.execute(sql, (username, password))
result = self.cursor.fetchone()
if result is None:
messagebox.showerror("错误", "用户名或密码不正确!")
return
self.name = result['name']
此外,在 query_score
方法中,还需要更新 parent_window.destroy()
为 self.window.destroy()
来关闭当前窗口。
希望这对你有所帮助!如果还有其他问题,请随时提问。
内容由零声教学AI助手提供,问题来源于学员提问