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

 本例已经实现的数据库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()
    

效果示例:

阅读终点,创作起航,您可以撰写心得或摘录文章要点写篇博文。去创作
  • 3
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
PythonTkinter库提供了一个名为Treeview的小部件,它可以用来显示层次结构数据,比如文件系统或数据库表。下面是如何使用Tkinter Treeview显示MySQL数据库表的步骤: 1. 安装Python MySQL驱动程序 在Python中连接MySQL数据库需要安装MySQL驱动程序。你可以使用PyMySQLmysql-connector-pythonPython MySQL驱动程序。你可以使用以下命令安装PyMySQL: ``` pip install pymysql ``` 2. 连接到MySQL数据库 使用Python MySQL驱动程序连接到MySQL数据库: ```python import pymysql # 连接数据库 connection = pymysql.connect( host="localhost", user="root", password="password", db="database_name", cursorclass=pymysql.cursors.DictCursor ) ``` 3. 创建Treeview 使用Tkinter Treeview创建GUI界面。你可以使用以下代码创建一个空的Treeview: ```python import tkinter as tk from tkinter import ttk root = tk.Tk() treeview = ttk.Treeview(root) treeview.pack() root.mainloop() ``` 4. 获取数据 使用SQL查询从MySQL数据库表中获取数据: ```python # 查询数据 with connection.cursor() as cursor: sql = "SELECT * FROM table_name" cursor.execute(sql) data = cursor.fetchall() ``` 5. 将数据添加到Treeview中 将查询结果添加到Treeview中: ```python # 将数据添加到Treeview中 for row in data: treeview.insert("", "end", values=(row["column1"], row["column2"], row["column3"])) ``` 完整的代码示例: ```python import pymysql import tkinter as tk from tkinter import ttk # 连接数据库 connection = pymysql.connect( host="localhost", user="root", password="password", db="database_name", cursorclass=pymysql.cursors.DictCursor ) # 查询数据 with connection.cursor() as cursor: sql = "SELECT * FROM table_name" cursor.execute(sql) data = cursor.fetchall() # 创建GUI界面 root = tk.Tk() treeview = ttk.Treeview(root) treeview.pack() # 将数据添加到Treeview中 for row in data: treeview.insert("", "end", values=(row["column1"], row["column2"], row["column3"])) root.mainloop() ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IronSimon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值