一、安装环境
首先需要安装pyqt
pip install PyQt5
然后需要安装py design,帮助我们可视化布局
pip install PyQt5-tools
如果安装pyqt出现报错,请检查python版本是否为3.8,其他版本可能会报C++不存在的错误。
二、前端布局
找到py design
位置在
python安装目录 \Lib\site-packages\qt5_applications\Qt\bin
选择第三项,新建空白界面
拖两个Line Edit
再拖一个Button
这样我们的前端界面就初步完成了。
最后来绑定一下函数
点击工具栏的带箭头图表的按钮,选择并拖动按钮,给按钮绑定函数
右边的编辑可以自定义函数名
已添加点击执行submit()函数
将布局进行保存,保存是.ui文件,需要将.ui 转换成.py
执行如下代码
python -m PyQt5.uic.pyuic test.ui -o test.py
转换成功
三、功能实现
此时新建一个python文件,login.py,加载布局并且实现功能
from test import Ui_Dialog #导入布局文件
from PyQt5.Qt import *
class loginWindow(QWidget, Ui_Dialog):
def __init__(self):
super().__init__()
self.setupUi(self)
#按钮绑定函数
def submit(self):
#lineEdit 和 lineEdit_2 均为qtDesign定义的名字
#获取id和pwd的值
id = self.lineEdit.text()
pwd = self.lineEdit_2.text()
print(id,pwd)
if __name__ == "__main__":
import sys
app = QApplication(sys.argv)
loginwindow = loginWindow()
loginwindow.show()
sys.exit(app.exec_())
此时按下按钮可以获取,id和pwd的值
四、服务器的建立
from flask import Flask,render_template,request,g,session,url_for
import MySQLdb
import os
import json
#MySQL配置
host = 'localhost'
user = 'root'
password = '123'
database = 'test'
app = Flask(__name__)
# 建立数据库连接
db = MySQLdb.connect(host=host, user=user, passwd=password, db=database)
#定义路由
@app.route("/login",methods=['POST','GET'])
def login():
id = request.values.get("id")
pwd = request.values.get("pwd")
db = MySQLdb.connect(host=host, user=user, passwd=password, db=database)
cursor = db.cursor()
cursor.execute("SELECT * from teacher where id = %s and pwd = %s",(id,pwd,))
#查询结果 只查一个
data = cursor.fetchone()
#查询结果个数
count = cursor.rowcount
if count != 0:
return "ok"
else:
return "no"
if __name__ == '__main__':
app.run(debug=True)
五、完善程序
from login import Ui_Dialog
from random import randint
from main import mainWindow
from PyQt5.Qt import *
import requests
class loginWindow(QWidget, Ui_Dialog):
def __init__(self):
super().__init__()
self.setupUi(self)
def submit(self):
id = self.lineEdit.text()
pwd = self.lineEdit_2.text()
print(id,pwd)
print("http://localhost:5000/login?id={}&pwd={}".format(id,pwd))
res = requests.get("http://localhost:5000/login?id={}&pwd={}".format(id,pwd))
print(res.text)
if res.text == "ok":
message_box = QMessageBox()
message_box.setWindowTitle("提示")
message_box.setText("登录成功")
message_box.setIcon(QMessageBox.Information)
message_box.exec_()
else:
message_box = QMessageBox()
message_box.setWindowTitle("提示")
message_box.setText("账户或密码错误")
message_box.setIcon(QMessageBox.Information)
message_box.exec_()
if __name__ == "__main__":
import sys
app = QApplication(sys.argv)
loginwindow = loginWindow()
loginwindow.show()
sys.exit(app.exec_())
这样就完成了一个简单的登录系统