Python+Tkinter如何实现注册登录功能
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章给大家分享的是有关Python+Tkinter如何实现注册登录功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体内容如下项目结构:源代码:# -*- codin
千家信息网最后更新 2026年11月03日Python+Tkinter如何实现注册登录功能
这篇文章给大家分享的是有关Python+Tkinter如何实现注册登录功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
具体内容如下

项目结构:

源代码:
# -*- coding: utf-8 -*-"""@date: 2022/01/09 17:40@author: Anker@python:v3.10""" import tkinter as tkimport tkinter.messageboximport pymysql # 定义要执行的创建表的SQL语句test_sql = """ CREATE TABLE IF NOT EXISTS user( id INT auto_increment PRIMARY KEY, name varchar(20) not null, password varchar(20) not null )ENGINE=innodb DEFAULT CHARSET=utf8; """ # 登录窗口window = tk.Tk()window.title('学生考试系统')window.geometry('800x500') # 登录背景图片canvas = tk.Canvas(window, height=1920, width=1080)login_background = tk.PhotoImage(file='./view.png')login_image = canvas.create_image(0, 0, anchor='nw', image=login_background)canvas.pack(side='top') # 用户名密码标签tk.Label(window, text='用户名:', bg='yellow').place(x=300, y=200)tk.Label(window, text='密 码:', bg='yellow').place(x=300, y=250) # 用户名输入框var_user_name = tk.StringVar()entry_user_name = tk.Entry(window, textvariable=var_user_name)entry_user_name.place(x=370, y=200) # 密码输入框var_user_pwd = tk.StringVar()entry_user_pwd = tk.Entry(window, textvariable=var_user_pwd, show='*')entry_user_pwd.place(x=370, y=250) # 登录函数def user_login(): # 输入框获取用户名密码 user_name = var_user_name.get() user_password = var_user_pwd.get() # 连接test_sql数据库 conn = pymysql.connect(host="localhost", user="root", password="123456", database="test_sql", charset="utf8") curs = conn.cursor() # 执行SQL语句,创建user数据表 curs.execute(test_sql) # 执行SQL语句,从user数据表中查询name和password字段值 curs.execute("SELECT name,password FROM user") # 将数据库查询的结果保存在result中 result = curs.fetchall() # fetchone()函数它的返回值是单个的元组, 也就是一行记录, 如果没有结果, 那就会返回null # fetchall()函数它的返回值是多个元组, 即返回多个行记录, 如果没有结果, 返回的是() # assert result, "数据库无该用户信息" # 添加断言,判断数据库有无该用户信息,没有就直接断言错误 # 登录账号操作 name_list = [it[0] for it in result] # 从数据库查询的result中遍历查询元组中第一个元素name # 判断用户名或密码不能为空 if not(user_name and user_password): tk.messagebox.showwarning(title='警告', message='用户名或密码不能为空') # 判断用户名和密码是否匹配 elif user_name in name_list: if user_password == result[name_list.index(user_name)][1]: tk.messagebox.showinfo(title='欢迎您', message=' 登录成功!\r\n当前登录账号为:' + user_name) selection() else: tk.messagebox.showerror(title='错误', message='密码输入错误') # 账号不在数据库中,则弹出是否注册的框 else: is_signup = tk.messagebox.askyesno(title='提示', message='该账号不存在,是否现在注册?') if is_signup: user_register() # 注册函数def user_register(): # 确认注册函数 def register_confirm(): # 获取输入框内的内容 name = new_name.get() password = new_password.get() password_confirm = new_password_confirm.get() # 先在本地手动创建一个test_sql数据库,然后连接该数据库 conn = pymysql.connect(host="localhost", user="root", password="123456", database="test_sql", charset="utf8") curs = conn.cursor() # 注册账号操作 try: # 执行SQL语句,创建user数据表 curs.execute(test_sql) # 向user数据表中插入语句 insert_sql = "INSERT INTO user(name, password) VALUES ('%s', '%s')" % (name, password) # 读取user数据表中的name和password字段值 read_sql = f'''select * from user where name = "{name}" and password = "{password}" ''' user_data = curs.execute(read_sql) # 判断注册账号和密码 if not (name and password): tk.messagebox.showwarning(title='警告', message='注册账号或密码不能为空') elif password != password_confirm: tk.messagebox.showwarning(title='警告', message='两次密码输入不一致,请重新输入') else: if user_data.real: tk.messagebox.showwarning(title='警告', message='该注册账号已存在') else: curs.execute(insert_sql) tk.messagebox.showinfo(title='恭喜您', message=' 注册成功!\r\n注册账号为:' + name) print("数据插入成功") # 提交到数据库执行 conn.commit() curs.close() except IOError: print("数据插入失败") conn.rollback() # 关闭数据库连接 conn.close() window_sign_up.destroy() # 注册窗口 window_sign_up = tk.Toplevel(window) window_sign_up.geometry('350x200') window_sign_up.title('欢迎注册') # 注册账号及标签、输入框 new_name = tk.StringVar() tk.Label(window_sign_up, bg='green', text='注册账号:').place(x=50, y=10) tk.Entry(window_sign_up, textvariable=new_name).place(x=150, y=10) # 注册密码及标签、输入框 new_password = tk.StringVar() tk.Label(window_sign_up, bg='green', text='密 码:').place(x=50, y=50) tk.Entry(window_sign_up, textvariable=new_password, show='*').place(x=150, y=50) # 重复密码及标签、输入框 new_password_confirm = tk.StringVar() tk.Label(window_sign_up, bg='green', text='确认密码:').place(x=50, y=90) tk.Entry(window_sign_up, textvariable=new_password_confirm, show='*').place(x=150, y=90) # 确认注册按钮及位置 bt_confirm_sign_up = tk.Button(window_sign_up, bg='green', text='确认注册', command=register_confirm) bt_confirm_sign_up.place(x=150, y=130) # 选择题函数def selection(): def wrong(): tk.messagebox.showerror(title='错误', message='抱歉,您答错了') def right(): tk.messagebox.showinfo(title='提示', message='恭喜您,答对了') # 选择题窗口 window_options = tk.Toplevel(window) window_options.geometry('350x200') window_options.title('选择题') # 在图形界面上创建一个标签label用以显示并放置 var = tk.StringVar() # 定义一个var用来将radiobutton的值和Label的值联系在一起. lab = tk.Label(window_options, bg='red', fg='white', width=50) lab.pack() lab.config(text='第1题:两个锐角均为60度的三角形是什么三角形()' + var.get()) # 创建3个radiobutton选项,其中variable=var, value='A'表示:当鼠标选中其中一个选项,把value的值A放到变量var中,然后赋值给variable radio1 = tk.Radiobutton(window_options, text='A:锐角三角形', variable=var, value='A', command=wrong) radio1.pack() radio2 = tk.Radiobutton(window_options, text='B:钝角三角形', variable=var, value='B', command=wrong) radio2.pack() radio3 = tk.Radiobutton(window_options, text='C:等边三角形', variable=var, value='C', command=right) radio3.pack() radio4 = tk.Radiobutton(window_options, text='D:直角三角形', variable=var, value='D', command=wrong) radio4.pack() # 注册和登录按钮bt_register = tk.Button(window, bg='yellow', text='注册', command=user_register)bt_register.place(x=380, y=300)bt_login = tk.Button(window, bg='yellow', text='登录', command=user_login)bt_login.place(x=440, y=300) # 主循环window.mainloop()感谢各位的阅读!关于"Python+Tkinter如何实现注册登录功能"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
数据
密码
账号
登录
数据库
输入
用户
用户名
三角形
函数
数据表
标签
语句
内容
错误
三角
查询
成功
结果
选择题
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
咖啡
小米移动互联网科技园
深圳九邦互联网科技有限公司
科技互联网龙头
成都互联网科技公司
人人互联网科技是培训
互联网科技股有哪些
以后互联网后是啥科技
重庆威客帮互联网科技
深圳市罗太互联网科技有限公司
互联网时代的科技公司
互联网公司高科技产品
中国互联网有什么科技
江苏苏星互联网科技有限公司
扫呗互联网科技有限公司
福建互联网展示科技馆设计
科技互联网行业投资研究
马化腾互联网科技教学
互联网大会出现的黑科技
互联网科技快速发展优美句子
什么是科技互联网
港股互联网科技股
互联网络科技有限公司
为想互联网科技
深圳艾佳互联网科技
长亮科技 互联网金融
中和天地互联网科技有限公司
科技互联网的核心竞争力
江苏互联网科技小贷
同城互联网络科技