【Python小案例】Python+mysql+PyQt5健康体检报告查询

下载安装Python3.7.8

python官网:https://www.python.org/
image.png

PyQt5配置

安装PyQt5

pip install PyQt5

pip install qt5_tools

image.png

image.png

pytcharm创建项目

image.png

配置外部工具

QTDesigner的Arguments语句不用填
QTDesigner的Working directory语句:$ProjectFileDir$
Pyuic的Arguments语句:-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py
PyUIC的Working directory语句:$FileDir$
PyRIC的Arguments语句:$FileName$ -o $FileNameWithoutExtension$_rc.py
PyRIC的Working directory语句:$FileDir$
PostgreSQL各平台安装教程:http://t.csdn.cn/w9Ff6

image.png
image.png

image.png

image.png

测试是否成功

image.png
image.png

实战

登录界面设计

image.png

登录标题

image.png

图标

image.png
image.png

标签字体设置

image.png
image.png

输入框

image.png
设置提示默认值
image.png

按钮

image.png

禁止窗口缩放

image.png

设置变量名

image.png

数据库设计

下面数据库语句是单独在Navicat里面执行的

info表

image.png

DROP TABLE IF EXISTS `info`;
CREATE TABLE `info` (
  `ID` int(11) NOT NULL,
  `sex` varchar(255) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  `height` int(11) DEFAULT NULL,
  `weight` int(11) DEFAULT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;



INSERT INTO `info` VALUES ('1', '男', '18', '180', '70');
INSERT INTO `info` VALUES ('2', '女', '20', '177', '60');

login表

image.png

DROP TABLE IF EXISTS `login`;
CREATE TABLE `login` (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(20) NOT NULL,
  `password` varchar(20) NOT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;


INSERT INTO `login` VALUES ('1', '小米', 'xiaomi');
INSERT INTO `login` VALUES ('2', '苹果', 'pingguo');

登录代码功能

# -*- coding: UTF-8 -*-
'''
@Project :PyQtTest 
@File    :main.py
@IDE     :PyCharm 
@Author  :Manba_77
'''

from PySide2.QtWidgets import QApplication, QMessageBox
from PySide2.QtUiTools import QUiLoader
import pymysql

class Win_Login:
    def __init__(self):
        # 从文件中加载UI定义
        # 从UI定义中动态创建一个相应的窗口对象
        # 注意:里面的控件对象也成为窗口对象的属性了
        # 比如 self.ui.button,self.ui.textEdit
        self.ui = QUiLoader().load('login.ui')
        self.ui.btn_login.clicked.connect(self.OnSignIn)
        self.ui.edt_password.returnPressed.connect(self.OnSignIn)

    def exe_sql(self, sql):
        conn = pymysql.connect(host='127.0.0.1', user='root', password='123456', database='qtproject')
        try:
            cursor = conn.cursor()
            cursor.execute(sql)
            result_sql = cursor.fetchall()
            cursor.close()
            conn.close()
            return result_sql
        except:
            result_sql = 0
            return result_sql


    def OnSignIn(self):
        username = self.ui.edt_username.text().strip()
        password = self.ui.edt_password.text().strip()

        sql_1 = 'SELECT * From login;'
        result_sql_1 = self.exe_sql(sql_1)

        if result_sql_1 == 1:
            QMessageBox.Warning(
                self.ui,
                '用户名或密码错误'
            )
        else:
            for res_1 in result_sql_1:
                print(res_1)
                if username == res_1[1] and password == res_1[2]:
                    sql_2 = 'SELECT * From info;'
                    result_sql_2 = self.exe_sql(sql_2)
                    for res_2 in result_sql_2:
                        if res_1[0] == res_2[0]:
                            QMessageBox.warning(
                                self.ui,
                                '结果',
                                "性别:{}\n年龄:{}\n身高:{}\n体重:{}".format(res_2[1], res_2[2], res_2[3], res_2[4])
                            )

app = QApplication([])
stat = Win_Login()
stat.ui.show()
app.exec_()

运行效果

image.png
image.png

完整项目代码

项目代码已打包放在网盘可自取,感谢三连

链接:https://pan.baidu.com/s/1gYAqzGTac62jgFBLPPPgkQ?pwd=skml 
提取码:skml 
  • 8
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值