首先,对于管理系统,各位都不陌生,本作将于PysimpleGUI+pymysql基础上对管理系统进行可交互性的操作。
对于不了解pymysql基本操作的小伙伴可以参考:
https://blog.csdn.net/linwow/article/details/90269246
对于不了解PysimpleGUI基本操作的小伙伴可以参考:
https://blog.csdn.net/qq_37828873/article/details/114636757
接下来,我将展示管理系统中的登录界面设计:
首先,得现在mysql中创建user_information数据库,并在当中创建user这个表(账号和密码将保存在其中)
其中,user_account代表着用户的账号,user_password代表着用户的密码
之后往这两个列中输入最初的账号和密码
import pandas as pd #导入库
import pymysql
import re
import PySimpleGUI as sg
import os
import time
conn = pymysql.connect(host="localhost", #打开数据库连接
user="root",
password="",
db="user_information",
charset="utf8")
cursor = conn.cursor() #使用 cursor() 方法创建一个游标对象
sql ="select user_account from user " #取出存在数据库中的账号
cursor.execute(sql)
result = cursor.fetchall()
data_user_account = pd.DataFrame(list(result))
sql ="select user_password from user " #取出存在数据库中的密码
cursor.execute(sql)
result = cursor.fetchall()
data_user_password = pd.DataFrame(list(result))
cursor.close()
conn.close()
layout = [[sg.Text("请输入账号")], #界面设计
[sg.Input(key='-INPUT-')],
[sg.Text("请输入密码")],
[sg.Input(key='-INPUT-',password_char='*')], #password_char='*'密码将以*显现
[sg.Text(size=(40,1), key='-OUTPUT-')],
[sg.Button('Ok'), sg.Button('退出')]] #设置按钮
window = sg.Window('登录界面', layout)
while True:
event, values = window.read() #读取动作和数值
if event == sg.WINDOW_CLOSED or event == '退出':
break
values = pd.DataFrame([values])
if values.iat[0,0] == '' or values.iat[0,1]=='':
window.close()
layout = [[sg.Text("填写为空!")],
[sg.Button('返回')]]
window = sg.Window('错误', layout)
while True:
event, values = window.read()
if event == sg.WINDOW_CLOSED:
break
if event == '返回':
time.sleep(0.5)
window.close()
os.system('python login.py') #这里将重新跳转回login.py中
user_account = int(values.iat[0,0])
user_password = int(values.iat[0,1])
user_account_examine = data_user_account.isin([user_account])
user_password_examine = data_user_account.isin([user_password])
for index,row1 in user_account_examine.iterrows(): #比对输入的账号和密码
if row1[0] == True :
for index,row2 in user_password_examine.iterrows():
if row2[0] == True:
time.sleep(0.5)
window.close()
os.system('python menu.py') #这里将跳转到menu.py中
break
else:
window['-OUTPUT-'].update("密码错误,请重试!")
else:
window['-OUTPUT-'].update("账号未创建,请重试!")
window.close()
运行截图:
menu.py菜单的代码: