from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtGui import QIcon
from mainview import Ui_MainWindow_1
import sys
import pymysql
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("登录")
MainWindow.setWindowIcon(QIcon('icon1.png'))
MainWindow.resize(523, 372)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.name_label = QtWidgets.QLabel(self.centralwidget)
self.name_label.setGeometry(QtCore.QRect(160, 265, 71, 31))
font = QtGui.QFont()
font.setPointSize(10)
self.name_label.setFont(font)
self.name_label.setTextFormat(QtCore.Qt.AutoText)
self.name_label.setAlignment(QtCore.Qt.AlignCenter)
self.name_label.setWordWrap(False)
self.name_label.setObjectName("name_label")
self.pass_label = QtWidgets.QLabel(self.centralwidget)
self.pass_label.setGeometry(QtCore.QRect(160, 305, 61, 31))
font = QtGui.QFont()
font.setPointSize(10)
self.pass_label.setFont(font)
self.pass_label.setTextFormat(QtCore.Qt.AutoText)
self.pass_label.setAlignment(QtCore.Qt.AlignCenter)
self.pass_label.setWordWrap(False)
self.pass_label.setObjectName("pass_label")
self.user_name = QtWidgets.QLineEdit(self.centralwidget)
self.user_name.setText("admin")
self.user_name.setGeometry(QtCore.QRect(230, 270, 113, 21))
self.user_name.setObjectName("user_name")
self.user_pass = QtWidgets.QLineEdit(self.centralwidget)
self.user_pass.setGeometry(QtCore.QRect(230, 310, 113, 21))
self.user_pass.setObjectName("user_pass")
self.user_pass.setEchoMode(2)
self.user_pass.setText("123456")
self.login_btn = QtWidgets.QPushButton(self.centralwidget)
self.login_btn.setGeometry(QtCore.QRect(150, 340, 93, 28))
self.login_btn.setObjectName("login_btn")
self.exit_btn = QtWidgets.QPushButton(self.centralwidget)
self.exit_btn.setGeometry(QtCore.QRect(290, 340, 93, 28))
self.exit_btn.setObjectName("exit_btn")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(0, 4, 521, 251))
self.label.setText("")
self.label.setObjectName("label")
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
self.exit_btn.clicked.connect(self.test)
self.login_btn.clicked.connect(self.log)
# 设置图片
from PyQt5.QtGui import QPixmap
icon = QPixmap("icon.png")
self.label.setPixmap(icon)
self.label.setScaledContents(True)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "登录"))
self.name_label.setText(_translate("MainWindow", "用户名:"))
self.pass_label.setText(_translate("MainWindow", "密码:"))
self.login_btn.setText(_translate("MainWindow", "登录"))
self.exit_btn.setText(_translate("MainWindow", "退出"))
self.Main = MyMainWindow()
def log(self):
user_name = self.user_name.text()
user_pass = self.user_pass.text()
try:
self.db = pymysql.connect(host='localhost',port=3306,user='root',passwd='573489789',database='stu',charset='utf8')
except:
QMessageBox.warning(MainWindow, '警告', "连接数据库故障", QMessageBox.Yes)
self.db.rollback()
sql = 'select * from user'
cur = self.db.cursor()
cur.execute(sql)
results = cur.fetchall()
name = []
wd = []
for row in results:
stu_name = row[0]
name.append(stu_name)
stu_passwd = row[1]
wd.append(stu_passwd)
x = 0
for i in range(len(name)):
if user_name == name[i] and user_pass == wd[i]:
x = 1
else:
pass
self.db.close()
if x == 1:
self.open()
else:
QMessageBox.question(MainWindow, '错误', "你输入的账户名或密码不正确", QMessageBox.Yes)
def open(self):
self.Main.show()
MainWindow.close()
def test(self):
from PyQt5.QtWidgets import QMessageBox
reply = QMessageBox.question(MainWindow, '退出', '确定退出?', QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
if reply == QMessageBox.Yes:
sys.exit(app.exec_())
class MyMainWindow(QtWidgets.QMainWindow,Ui_MainWindow_1):
#初始化
def __init__(self):
super(MyMainWindow, self).__init__()
self.setupUi(self)
self.pushButton.clicked.connect(self.idshow)
self.pushButton_2.clicked.connect(self.scoreshow)
self.pushButton_3.clicked.connect(self.flush)
self.pushButton_4.clicked.connect(self.exsv)
self.pushButton_5.clicked.connect(self.sqlshow)
self.pushButton_6.clicked.connect(self.add)
self.pushButton_7.clicked.connect(self.iddelete)
self.pushButton_8.clicked.connect(self.namedelete)
self.pushButton_9.clicked.connect(self.idupdate)
self.pushButton_10.clicked.connect(self.nameupdate)
self.pushButton_11.clicked.connect(self.idsel)
self.pushButton_12.clicked.connect(self.namesel)
def idshow(self):
db = pymysql.connect(host='localhost',port=3306,user='root',passwd='573489789',database='stu',charset='utf8')
cur = db.cursor()
sql = 'select * from student'
cur.execute(sql)
items = cur.fetchall()
downlist = sorted(items, key=lambda x: x[0], reverse= False)
for i in range(len(downlist)):
item = downlist[i]
row = self.tableWidget.rowCount()
self.tableWidget.insertRow(row)
for j in range(len(item)):
item = QTableWidgetItem(str(downlist[i][j]))
self.tableWidget.setItem(row, j, item)
def scoreshow(self):
db = pymysql.connect(host='localhost', port=3306, user='root', passwd='573489789', database='stu',charset='utf8')
cur = db.cursor()
sql = 'select * from student'
cur.execute(sql)
items = cur.fetchall()
downlist = sorted(items, key=lambda x: x[3], reverse=True)
for i in range(len(downlist)):
item = downlist[i]
row = self.tableWidget.rowCount()
self.tableWidget.insertRow(row)
for j in range(len(item)):
item = QTableWidgetItem(str(downlist[i][j]))
self.tableWidget.setItem(row, j, item)
def flush(self):
self.tableWidget.setRowCount(0)
self.tableWidget.clearContents()
def exsv(self):
self.destroy()
def sqlshow(self):
db = pymysql.connect(host='localhost', port=3306, user='root', passwd='573489789', database='stu',charset='utf8')
cur = db.cursor()
sql = 'select * from student'
cur.execute(sql)
items = cur.fetchall()
for i in range(len(items)):
item = items[i]
row = self.tableWidget.rowCount()
self.tableWidget.insertRow(row)
for j in range(len(item)):
item = QTableWidgetItem(str(items[i][j]))
self.tableWidget.setItem(row, j, item)
def add(self):
sql_insert = 'INSERT INTO Student (id , name, age, score) VALUE (%s,%s,%s,%s) '
sql = 'select * from student'
db = pymysql.connect(host='localhost',port=3306,user='root',passwd='573489789',databas
没有合适的资源?快使用搜索试试~ 我知道了~
python制作的学生信息管理系统(3)
共10个文件
png:4个
py:3个
ui:1个
5星 · 超过95%的资源 需积分: 29 5 下载量 41 浏览量
2022-09-20
22:03:25
上传
评论 2
收藏 2.93MB ZIP 举报
温馨提示
进阶版本 比(2)版本加入了mysql数据库 进入系统需要登录(用户名和密码,在数据库中存储) 以及对于(2)界面的优化,更加整洁 (数据存储方式,改用mysql数据库)
资源详情
资源评论
资源推荐
收起资源包目录
pymysql.zip (10个子文件)
pymysql
main.py 23KB
icon - 副本.png 473KB
mainview.ui 7KB
__pycache__
mainview.cpython-39.pyc 5KB
mainview.py 10KB
back.png 980KB
__init__.py 0B
icon.png 473KB
icon1.png 1.02MB
5f1eac5810dbc062b0aa77023a81af82.jpg 27KB
共 10 条
- 1
你的玮
- 粉丝: 4
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论10