You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
124 lines
3.9 KiB
124 lines
3.9 KiB
from tkinter import *
|
|
import tkinter as tk
|
|
from tkinter import filedialog
|
|
import pymysql
|
|
from flask import Flask, render_template, request, redirect, url_for
|
|
|
|
conn = pymysql.connect(host='localhost',
|
|
user='root',
|
|
password='123456',
|
|
database='scaner',
|
|
port=3306,
|
|
charset='utf8')
|
|
|
|
# 使用 cursor() 方法创建一个游标对象 cursor
|
|
cursor = conn.cursor()
|
|
print("数据库连接成功!")
|
|
|
|
|
|
# 查询用户信息
|
|
def userinfo_query(username, password):
|
|
cursor.execute("select * from `user`")
|
|
data = cursor.fetchall()
|
|
|
|
username_list_length = len(data)
|
|
|
|
for i in range(username_list_length):
|
|
username.append(data[i][0])
|
|
password.append(data[i][1])
|
|
|
|
|
|
def user_register():
|
|
deng = Tk()
|
|
deng.title("注册")
|
|
deng.geometry("300x200")
|
|
|
|
# 在GUI中添加新的输入字段和按钮
|
|
label_new_username = Label(deng, text="新账号:")
|
|
label_new_username.pack()
|
|
entry_new_username = Entry(deng)
|
|
entry_new_username.pack()
|
|
label_new_password = Label(deng, text="新密码:")
|
|
label_new_password.pack()
|
|
entry_new_password = Entry(deng, show="*")
|
|
entry_new_password.pack()
|
|
|
|
btn_register = Button(deng, text="注册", command=lambda: register_action(entry_new_username, entry_new_password))
|
|
btn_register.pack(side='right', padx=50)
|
|
|
|
|
|
def register_action(entry_new_username, entry_new_password):
|
|
cursor.execute("INSERT INTO user (`username`, `password`) VALUES (%s, %s)",
|
|
(entry_new_username.get(), entry_new_password.get()))
|
|
conn.commit()
|
|
print("注册成功!")
|
|
|
|
|
|
def user_login():
|
|
global count
|
|
count = 2
|
|
username_list = []
|
|
password_list = []
|
|
userinfo_query(username_list, password_list)
|
|
|
|
username_input = entry_username.get()
|
|
password_input = entry_password.get()
|
|
|
|
if username_input not in username_list:
|
|
label_message.config(text="账号错误!")
|
|
else:
|
|
if password_input in password_list:
|
|
def choose_folde():
|
|
root.destroy()
|
|
root5 = tk.Tk()
|
|
root5.title('选择图片')
|
|
root5.geometry('300x300')
|
|
folder_path = filedialog.askdirectory()
|
|
if folder_path:
|
|
print(f"您选择了文件夹: {folder_path}")
|
|
|
|
root.mainloop()
|
|
def callback():
|
|
rootback = tk.Tk()
|
|
rootback.title('用户界面')
|
|
rootback.geometry('300x300')
|
|
tk.Label(rootback, text='请选择你的功能').pack()
|
|
tk.Button(rootback, text="选择需要扫描的图片", command=choose_folde).pack()
|
|
rootback.mainloop()
|
|
|
|
# windows.destroy()
|
|
root = tk.Tk()
|
|
root.title('用户界面')
|
|
root.geometry('300x300')
|
|
tk.Label(root, text='请选择你的功能').pack()
|
|
tk.Button(root, text="选择需要扫描的图片", command=choose_folde).pack()
|
|
tk.mainloop()
|
|
else:
|
|
label_message.config(text="密码错误!还可以尝试{}次".format(count))
|
|
count += 1
|
|
if count == 3:
|
|
label_message.config(text="登录失败!")
|
|
btn_login.config(state='disabled')
|
|
|
|
|
|
windows = Tk()
|
|
windows.title("登录")
|
|
windows.geometry("300x200")
|
|
label_username = Label(windows, text="账号:")
|
|
label_username.pack()
|
|
entry_username = Entry(windows)
|
|
entry_username.pack()
|
|
label_password = Label(windows, text="密码:")
|
|
label_password.pack()
|
|
entry_password = Entry(windows, show="*")
|
|
entry_password.pack()
|
|
|
|
btn_login = Button(windows, text="登录", command=user_login)
|
|
btn_login.pack(side='left', padx=50)
|
|
entry_password.pack()
|
|
btn_login = Button(windows, text='注册', command=user_register)
|
|
btn_login.pack(side='right', padx=50)
|
|
label_message = Label(windows, text="")
|
|
label_message.pack()
|
|
windows.mainloop()
|