日常学习记录——tkinter链接MySQL实现用户登录功能

1 功能实现

  1. Mysql的安装:MySQL的详细安装教程,看着有点复杂,后面还参考了一些C站上面的博客,安装了5.7.38版本。

  2. 登陆界面框架:利用tkinter连接mysql实现简单的登录功能

  3. 运行结果:

    ① 初始界面
    登录窗口

    ② 登录成功
    登陆成功

    ③ 用户名或密码错误
    用户名或密码错误


2 MySQL的基础操作

MySQL的基础操作:[小白必看]MySQL创建数据库和创建数据表

  1. 创建数据库:CREATE DATABASE MyDB_one charset utf8;
  2. 打开数据库:USE MyDB_one;
  3. 创建登录数据表:CREATE TABLE user_login(username varchar(20), password varchar(20));
  4. 插入数据:INSERT INTO user_login(username,password) values(‘admin’,‘123456’);
  5. 显示数据:SELECT * FROM user_login
    样例数据

3 tkinter的消息框

调用成功登录和用户名密码错误这两个提示函数时,相应文本框的提示字符显示不全,最后参照这篇博文修改了一下:【tkinter标准对话框】messagebox:信息传递,消息对话框!

def success_tip(username):
    success = showinfo(title='消息提示框', message=username + '登录成功')
    root.destroy()
    pass


def fail_tip():
    fail = showerror(title='错误消息框', message='用户名或密码错误')

4 完整代码

import tkinter as tk
from tkinter.messagebox import *
import pymysql


def success_tip(username):
    success = showinfo(title='消息提示框', message=username + '登录成功')
    root.destroy()
    pass


def fail_tip():
    fail = showerror(title='错误消息框', message='用户名或密码错误')


def auto_login():
    db = pymysql.connect(host='localhost', user='root', password='123456', database='MyDB_one', port=3306)
    cur = db.cursor()  # 获取操作游标
    sql = 'SELECT * FROM user_login'
    entry1 = input1.get()
    entry2 = input2.get()
    flag = True
    try:
        cur.execute(sql)  # 对用户数据表进行查询
        results = cur.fetchall()  # 获取所有查询数据
        for row in results:
            username = row[0]  # 用户名
            password = row[1]  # 密码
            # 判断输入的用户名和密码是否匹配
            if username == entry1 and password == entry2:
                print('登陆成功')
                username = row[0]
                success_tip(username)
                flag = True
                break
            else:
                flag = False
        if flag == False:
            fail_tip()

    except Exception as e:
        print('登录异常')


def exit_login():
    root.destroy()
    pass


def frame():
    global root
    root = tk.Tk()
    root.title('登录窗口')
    v1 = tk.StringVar()
    v2 = tk.StringVar()

    # 用户名标签,位置在第0行第0列
    tk.Label(root, text='账号:').grid(row=0, column=0)
    # 密码标签,位置在第1行第0列
    tk.Label(root, text='密码:').grid(row=1, column=0)
    # 用户名输入框
    global input1
    input1 = tk.Entry(root, textvariable=v1)
    input1.grid(row=0, column=1, padx=10, pady=5)
    # 密码输入框
    global input2
    input2 = tk.Entry(root, textvariable=v2, show='*')
    input2.grid(row=1, column=1, padx=10, pady=5)

    # 登录按钮
    tk.Button(root, text='登录', width=10, command=auto_login).grid(row=3, column=0, sticky=tk.W, padx=10, pady=5)
    # 退出按钮
    tk.Button(root, text='退出', width=10, command=exit_login).grid(row=3, column=1, sticky=tk.E, padx=10, pady=5)

    root.mainloop()


if __name__ == '__main__':
    frame()

  • 2
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值