python tkinter与Mysql数据库交互实现账号登陆

 更新时间:2022年01月11日 09:15:23   作者:IronSimon  
本文主要介绍了python tkinter与Mysql数据库交互实现账号登陆,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

 本例已经实现的数据库password,数据库的表以及表结构如下:

表中已经插入的信息:

实现思路无非是用户完成账户密码输入并点击登录按钮后,程序先进行数据库连接,然后根据用户提供的参数,
发出相应的查询语句,根据返回的查询结果给出相应的响应。

代码实现

# -*- coding: utf-8 -*-
"""
Created on Tue Nov  6 14:29:54 2018
Description:实现tkinter的密码验证
                1.与数据库验证
Version:
    
@author: HJY
"""
import tkinter as tk
from tkinter import messagebox
import sys
import pymysql
 
class loginf():
    def __init__(self,master):
        self.master = master
        self.face = tk.Frame(self.master,)
        self.face.pack()
        
        tk.Label(self.face,text='账户').pack()
        self.t_account = tk.Entry(self.face,)
        self.t_account.pack()
 
        tk.Label(self.face,text='密码').pack()
        self.t_password = tk.Entry(self.face,)
        self.t_password.pack()               
        btn_login = tk.Button(self.face,text='login',command=self.login)
        btn_login.pack()
        
        
    def login(self,):
        
        account = self.t_account.get()
        password = self.t_password.get()       
        #判空操作:略
        print(account,password)
        
        #数据库处理
        connection = pymysql.connect(host='localhost',user='root',port=3306)
        try:
            with connection.cursor() as cursor:                
                command1 = "use password;"
                command2 = "select password from passbook where account = (%s);"                              
                cursor.execute(command1)                                
                result = cursor.execute(command2,(account))
                
            connection.close()
            
        except:
            sys.exit()
        
        else:
            if result == 0:
                print('no this account!') 
                tk.messagebox.showerror('Info',"Account Not Exist!")
            else:
                print('查找结果:',result)
                if cursor.fetchone()[0] == password:
                    print('Login successfully!')
                    tk.messagebox.showinfo('Info',"Login successfully!")                    
                    #销毁登陆界面,生成登陆后界面
                    self.face.destroy()
                    homef(self.master)
                    
                else:
                    print('password input error')
                    tk.messagebox.showerror('Info',"Password Error!")                        
                          
class homef():
    def __init__(self,master):
        self.master = master
        self.face = tk.Frame(self.master,)
        self.face.pack()     
        btn_showinfo = tk.Button(self.face,text='info',command=self.showinfo)
        btn_showinfo.pack()
    
    def showinfo(self,):
        pass
           
       
if __name__ == '__main__':
    root = tk.Tk()
    root.title('Login with password')
    root.geometry('200x200')
    
    loginf(root)
    root.mainloop()
    

效果示例:

 

相关文章

  • Python如何获得百度统计API的数据并发送邮件示例代码

    Python如何获得百度统计API的数据并发送邮件示例代码

    这篇文章主要给大家介绍了关于Python如何获得百度统计API的数据并发送邮件的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-01-01
  • pygame学习笔记(5):游戏精灵

    pygame学习笔记(5):游戏精灵

    这篇文章主要介绍了pygame学习笔记(5):游戏精灵,本文讲解了什么是精灵、sprite中主要且常用的变量、建立一个简单的精灵、学习精灵组、动画等内容,需要的朋友可以参考下
    2015-04-04
  • Python NumPy数组裁切和数据类型的实现即原理详解

    Python NumPy数组裁切和数据类型的实现即原理详解

    这篇文章主要介绍了Python NumPy数组裁切和数据类型的实现即原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2023-05-05
  • Python多线程Threading、子线程与守护线程实例详解

    Python多线程Threading、子线程与守护线程实例详解

    这篇文章主要介绍了Python多线程Threading、子线程与守护线程,结合实例形式详细分析了Python多线程Threading、子线程与守护线程相关概念、原理、用法与操作注意事项,需要的朋友可以参考下
    2020-03-03
  • PyTorch实现更新部分网络,其他不更新

    PyTorch实现更新部分网络,其他不更新

    今天小编就为大家分享一篇PyTorch实现更新部分网络,其他不更新,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • pandas与pyspark计算效率对比分析

    pandas与pyspark计算效率对比分析

    这篇文章主要介绍了pandas与pyspark计算效率对比,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-06-06
  • python万年历实现代码 含运行结果

    python万年历实现代码 含运行结果

    这篇文章主要为大家详细介绍了python万年历实现代码,含运行结果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • 教你使用Python从文件中提取IP地址

    教你使用Python从文件中提取IP地址

    Python提供了高效的高级数据结构,还能简单有效地面向对象编程,下面这篇文章主要给大家介绍了关于如何使用Python从文件中提取IP地址的相关资料,需要的朋友可以参考下
    2022-07-07
  • Python脚本提取fasta文件单序列信息实现

    Python脚本提取fasta文件单序列信息实现

    这篇文章主要为大家介绍了Python脚本提取fasta文件单序列信息实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • 深入理解Python中的 __new__ 和 __init__及区别介绍

    深入理解Python中的 __new__ 和 __init__及区别介绍

    这篇文章主要介绍了深入理解Python中的 __new__ 和 __init__及区别介绍,这两个方法的主要区别在于:__new__ 负责对象的创建而 __init__ 负责对象的初始化。具体内容详情大家跟随小编一起看看吧
    2018-09-09

最新评论