【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 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/635052.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

BGP配置

配置 r1 建立EBGP对等体 [r1]bgp 100 [r1-bgp]router-id 1.1.1.1 [r1-bgp]peer 12.0.0.2 as-number 200 [r1]ip route-static 2.2.2.2 32 12.0.0.2 [r1]bgp 100 [r1-bgp]router-id 1.1.1.1 [r1-bgp]peer 2.2.2.2 as-number 200 [r1-bgp]peer 2.2.2.2 connect-interface LoopBa…

军工单位如何做到安全跨网文件交换与导出的

在现代信息化战争中,军工单位在信息安全方面的需求尤为突出。跨网文件交换与导出作为军工单位日常运营的重要环节,面临着网络带宽限制、数据安全风险、合规性要求和传输稳定性等挑战。下面,我们将从以下几个方面探讨军工单位如何实现安全、高…

深度学习之基于Tensorflow卷积神经网络脑肿瘤分类识别系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 脑肿瘤是医学领域的一个重要问题,对人类的健康构成了严重威胁。传统的脑肿瘤分类识别方法…

Thingsboard规则链:Entity Type Switch节点详解

在物联网(IoT)领域,随着设备数量的爆炸式增长和数据复杂性的增加,高效、灵活的数据处理机制变得至关重要。作为一款先进的物联网平台,ThingsBoard提供了强大的规则链(Rule Chains)功能&#xff…

提升代码简洁,MVEL 表达式和责任链设计模式应用实践

导读 本文主要讲解了MVEL表达式和责任链设计模式相结合一起的消息处理解决方案设计、解耦消息处理节点以及方便代码维护扩展。通过“订单拆单消息”的接入作为具体实践案例,简要阐述了MVEL表达式和Apache Chain职责链设计模式应用场景。希望通过本文,读…

实战Java虚拟机-高级篇

一、GraalVM 什么是GraalVM GraalVM是Oracle官方推出的一款高性能JDK,使用它享受比OpenJDK或者OracleJDK更好的性能。GraalVM的官方网址:https://www.graalvm.org/官方标语:Build faster, smaller, leaner applications。 更低的CPU、内存…

力扣第206题-反转链表

反转链表的效果示意图 要改变链表结构时,通常加入一个创建的临时头结点会更容易操作 时间复杂度:遍历2遍,2n 空间复杂度:额外创建一个栈,n (空间创建一个数组长度最大为5000,你说这个数组是栈也可以&…

5.17 作业+思维导图+模拟面试

// tcp_ser.c #include <myheader.h>#define SER_PORT 8888 #define SER_IP "192.168.125.109"int newfd, sfd;int main(int argc, const char *argv[]) {//1、为通信创建一个端点sfd socket(AF_INET, SOCK_STREAM, 0);//参数1&#xff1a;说明使用的是ipv4通…

2024中青杯数学建模C题:“X 疾病”在人群中的传播代码论文思路分析

2024中青杯数学建模C题论文和代码已完成&#xff0c;代码为C题全部问题的代码&#xff0c;论文包括摘要、问题重述、问题分析、模型假设、符号说明、模型的建立和求解&#xff08;问题1模型的建立和求解、问题2模型的建立和求解、问题3模型的建立和求解&#xff09;、模型的评价…

激光雷达在AGV(自动化导引车)中的应用

激光雷达在AGV&#xff08;自动化导引车&#xff09;中的应用主要体现在智能导航和避障功能上&#xff0c;具体来说有以下几个方面&#xff1a; 精确导航&#xff1a;激光雷达能够实时扫描周围环境&#xff0c;建立详细的三维地图&#xff0c;并与AGV的定位系统相结合&#xf…

如何利用Ubuntu服务器运行深度学习项目?

一、整体思路 先配置好服务器端的软件环境&#xff08;工程源码&#xff0c;miniconda&#xff0c;cuda&#xff0c;显卡驱动等&#xff09;&#xff0c;然后用自己电脑的pycharm远程连接服务器运行代码。一句话总结&#xff1a;借用服务器资源运行代码&#xff0c;本地pycharm…

Linux —— 线程同步

Linux —— 线程同步 死锁线程同步条件变量pthread_cond_waitpthread_cond_signal初始状态为什么之后会“阻塞”如何修改以持续运行 pthread_cond_broadcast 条件变量的接口抢票模拟 我们今天接着来了解线程&#xff1a; 死锁 死锁&#xff08;Deadlock&#xff09;是计算机科…

配置旁挂二层组网直接转发示例(命令行)

业务需求 企业用户通过WLAN接入网络&#xff0c;以满足移动办公的最基本需求。且在覆盖区域内移动发生漫游时&#xff0c;不影响用户的业务使用。 组网需求 AC组网方式&#xff1a;旁挂二层组网。DHCP部署方式&#xff1a; AC作为DHCP服务器为AP分配IP地址。汇聚交换机SwitchB作…

《Effective Objective-C 2.0》读书笔记——熟悉Objective-C

目录 第一章&#xff1a;熟悉Objective-C第1条&#xff1a;了解Objective-C语言的起源第2条&#xff1a;在类的头文件中尽量少引入其他头文件第3条&#xff1a;多用字面量语法&#xff0c;少用与之等价的方法第4条&#xff1a;多用类型常量&#xff0c;少用#define预处理指令第…

记录docker ps查找指定容器的几个命令

1.docker ps | grep registry 查询包含registry的容器 2.docker ps | grep -E "reigistry\s" 开启正则匹配模式&#xff0c;匹配registry后面为空格的容器&#xff0c;若是匹配一整行可以这样写docker ps | grep -E "^([0-9a-f]{12})\sregistry\s.*" 这…

Nacos 2.x 系列【2】单机部署

文章目录 1. 准备工作2. Windows2.1 下载2.2 目录 & 文件2.3 启动2.4 控制台 3. Linux&#xff08;CentOS&#xff09; 1. 准备工作 Nacos服务端支持三种部署模式&#xff1a; 单机模式&#xff1a;用于测试和单机试用。集群模式&#xff1a;用于生产环境&#xff0c;确保…

Elasticsearch集群和Logstash、Kibana部署

1、 Elasticsearch集群部署 服务器 安装软件主机名IP地址系统版本配置ElasticsearchElk10.3.145.14centos7.5.18042核4GElasticsearchEs110.3.145.56centos7.5.18042核3GElasticsearchEs210.3.145.57centos7.5.18042核3G 软件版本&#xff1a;elasticsearch-7.13.2.tar.gz 示…

Little Snitch for Mac(小飞贼防火墙软件)v5.7.6注册激活版

Little Snitch for Mac&#xff0c;也被称为“小飞贼”防火墙软件&#xff0c;是一款专为Mac用户设计的网络安全工具。以下是关于Little Snitch for Mac的一些主要特点&#xff1a; Little Snitch for Mac(小飞贼防火墙软件)v5.7.6注册激活版下载 强大的监控能力&#xff1a;Li…

Spring框架中获取方法参数名称:DefaultParameterNameDiscoverer

DefaultParameterNameDiscoverer 是Spring框架中用于获取方法参数名称的一个类。在Java中&#xff0c;方法的参数名称通常在编译时会丢失&#xff0c;因为Java字节码并不强制要求保留这些信息。Spring提供了一种机制来恢复这些参数名称&#xff0c;这就是通过DefaultParameterN…

【C++】 单例设计模式的讲解

前言 在我们的学习中不免会遇到一些要设计一些特殊的类&#xff0c;要求这些类只能在内存中特定的位置创建对象&#xff0c;这就需要我们对类进行一些特殊的处理&#xff0c;那我们该如何解决呢&#xff1f; 目录 1. 特殊类的设计1.1 设计一个类&#xff0c;不能被拷贝&#xf…