ZBLOG

File "F:\Pythonwokers\pythonProject1\venv\hello.py", line 83, in on_login AthletePage(self.window,username,password) File "F:\Pythonwokers\pythonProject1\venv\hello.py", line 196, in __init__ self.create_button("成绩查询", self.query_score(s...

根据您提供的代码,看起来您遇到了一个错误: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助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=16169

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?