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.

220 lines
7.8 KiB

6 months ago
import random
from datetime import datetime
import pymysql
'''
import pymysql
from PyQt5.QtGui import QStandardItem, QStandardItemModel
account_list=[]
password_list=[]
db = pymysql.connect(host='127.0.0.1', user='root', password='20021220', database='pybank')
cur = db.cursor()
cur.execute('select cid,cpsw from customer')
rows = cur.fetchall()
for row in rows:
account_list.append(row[0])
password_list.append(row[1])
print(account_list, password_list)
db.commit()
db.close()
#error example:
def login_in(self):
account = self.ui.login_account.text()
password = self.ui.login_psw.text()
account_list = []
password_list = []
db = pymysql.connect(host='127.0.0.1', user='root', password='20021220', database='pybank')
cur = db.cursor()
cur.execute('select cid,cpsw from customer')
rows = cur.fetchall()
print(rows)
for row in rows:
account_list.append(row[0])
password_list.append(row[1])
print(account_list, password_list)
db.commit()
db.close()
for i in range(len(account_list)):
if len(account==0) or len(password==0):
self.ui.stackedWidget.setCurrentIndex(2)
if account == account_list[i] and password == password_list[i]:
self.win = MainWindow()
self.close()
else:
self.ui.stackedWidget.setCurrentIndex(5)
'''
''' def login_in(self):
account = self.ui.login_account.text()
password = self.ui.login_psw.text()
# 检查输入框是否为空
if not account or not password:
self.ui.stackedWidget.setCurrentIndex(2) # 设置当前页面索引为空输入错误页面
return
account_list = []
password_list = []
try:
db = pymysql.connect(host='127.0.0.1', user='root', password='20021220', database='pybank')
cur = db.cursor()
cur.execute('select cid, cpsw from customer')
rows = cur.fetchall()
db.close()
except Exception as e:
print(f"Database error: {e}")
self.ui.stackedWidget.setCurrentIndex(2) # 设置为数据库错误页面(可以调整索引)
return
for row in rows:
account_list.append(row[0])
password_list.append(row[1])
# 验证账号和密码
for i in range(len(account_list)):
if account == account_list[i] and password == password_list[i]: # 假设密码是字符串
global user_now
user_now = account
self.win = MainWindow()
self.win.show() # 显示新窗口
self.close() # 关闭当前窗口
return # 匹配成功,退出函数
# 如果没有匹配成功
self.ui.stackedWidget.setCurrentIndex(5) # 设置当前页面索引为账号或密码错误页面'''
'''
def register_in(self):
account = self.ui.register_account.text()
password_1 = self.ui.register_psw.text()
password_2 = self.ui.register_psw2.text()
# 判断是否输入为空
if not account or not password_1 or not password_2:
self.ui.stackedWidget.setCurrentIndex(2) # 设置当前页面索引为空输入错误页面
return
# 判断账号是否已存在
try:
db = pymysql.connect(host='127.0.0.1', user='root', password='20021220', database='pybank')
cur = db.cursor()
cur.execute('select cid from customer')
rows = cur.fetchall()
db.close()
except Exception as e:
print(f"Database error: {e}")
self.ui.stackedWidget.setCurrentIndex(2) # 设置为数据库错误页面(可以调整索引)
return
# 提取所有现有账号
existing_accounts = [row[0] for row in rows]
if account in existing_accounts:
self.ui.stackedWidget.setCurrentIndex(3) # 设置当前页面索引为账号已存在错误页面
return
# 判断两次输入密码是否正确
if password_1 == password_2:
try:
db = pymysql.connect(host='127.0.0.1', user='root', password='20021220', database='pybank')
cur = db.cursor()
cur.execute(f"insert into customer(cid, cpsw) values('{account}', '{password_2}')")
db.commit() # 提交事务
db.close()
self.ui.stackedWidget.setCurrentIndex(4) # 设置当前页面索引为注册成功页面
except Exception as e:
print(f"Database error: {e}")
self.ui.stackedWidget.setCurrentIndex(2) # 设置为数据库错误页面
return
else:
self.ui.stackedWidget.setCurrentIndex(1) # 设置当前页面索引为密码不匹配错误页面
return
'''
''' def register_in(self):
account=self.ui.register_account.text()
password_1=self.ui.register_psw.text()
password_2=self.ui.register_psw2.text()
#判断是否输入为空
if not account or not password_1 or password_2:
self.ui.stackedWidget.setCurrentIndex(2) # 设置当前页面索引为空输入错误页面
return
#判断账号是否已存在
try:
db = pymysql.connect(host='127.0.0.1', user='root', password='20021220', database='pybank')
cur = db.cursor()
cur.execute('select cid from customer')
rows = cur.fetchall()
db.close()
except Exception as e:
print(f"Database error: {e}")
self.ui.stackedWidget.setCurrentIndex(2) # 设置为数据库错误页面(可以调整索引)
return
if account in rows:
self.ui.stackedWidget.setCurrentIndex(3)
return
#判断两次输入密码是否正确
if password_1==password_2:
self.ui.stackedWidget.setCurrentIndex(4)
try:
db = pymysql.connect(host='127.0.0.1', user='root', password='20021220', database='pybank')
cur = db.cursor()
cur.execute(f"insert into customer(cid,cpsw) values('{account}','{password_2}')")
db.close()
except Exception as e:
print(f"Database error: {e}")
return
else:
self.ui.stackedWidget.setCurrentIndex(1)
return
'''
'''
def info_in(self):
# 获取数据
data = self.connect_customer()
# 创建模型
model = QStandardItemModel()
# 设置列标题(根据你的表结构调整列标题)
model.setHorizontalHeaderLabels(['身份证号', '用户名', '性别', '用户年龄', '电话号码', '户籍', '登录密码'])
# 填充数据
for row in data:
items = [QStandardItem(str(field)) for field in row]
model.appendRow(items)
# 获取你的 QTableView 控件(假设它的名字是 tableView
table_view = self.ui.tableView
# 将模型设置为 QTableView 的模型
table_view.setModel(model)
# 切换到包含 QTableView 的页面
self.ui.stackedWidget.setCurrentIndex(6)
def generator_accid():
while True:
accid = random.randint(10000, 99999)
try:
db = pymysql.connect(host='127.0.0.1', user='root', password='20021220', database='pybank')
cur = db.cursor()
cur.execute('SELECT * FROM account WHERE accid = %s', (accid,))
rows = cur.fetchone()
if not rows:
db.close()
return accid
else:
print("Accid already exists. Generating a new one.")
db.close()
except Exception as e:
print(f"Database error: {e}")
return accid
# 调用函数并打印结果
print(generator_accid())
'''