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

news2024/11/15 11:14:36

下载安装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 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【GDAL】GDAL库学习(C#版本)

1.GDAL 2.VS2022配置GDAL环境(C#) VS2022工具–NuGet包管理器–管理解决方案的NuGet程序包,直接安装GDAL包。 并且直接用应用到当前的控制台程序中。 找一张tiff格式的图片,或者用格式转换网站:https://www.zamzar.c…

go升级后 编译的exe在win7上无法正常运行

D:/Go/src/runtime/sys_windows_amd64.s:65 x75 fpx22fca sp-0x22fc8日 升级到go 1.21后报一堆错误,要死了啊 原来是go 1.21不支持win7了,必须把go退回到1.20版本 谷歌发布编程语言 Go 1.21 版本:取消支持微软 Win7/8 及苹果 macOS 10.13/10…

爬虫技术升级:如何结合DrissionPage和Auth代理插件实现数据采集

背景/引言 在大数据时代,网络爬虫技术已经成为数据收集的重要手段之一。爬虫技术可以自动化地从互联网上收集数据,节省大量人力和时间成本。然而,当使用需要身份验证的代理服务器时,许多现有的爬虫框架并不直接支持代理认证。这就…

[力扣]——231.2的幂

题目描述: 给你一个整数 n,请你判断该整数是否是 2 的幂次方。如果是,返回 true ;否则,返回 false 。 如果存在一个整数 x 使得 n 2x ,则认为 n 是 2 的幂次方。 bool isPowerOfTwo(int n){ if(n0)retur…

vue3结合element-plus之如何优雅的使用表格

背景 表格组件的使用在后台管理系统中是非常常见的,但是如果每次使用表格我们都去一次一次地从 element-plus 官网去 复制、粘贴和修改成自己想要的表格。 这样一来也说得过去,但是如果我们静下来细想不难发现,表格的使用都是大同小异的,每次都去复制粘贴,对于有很多表格…

深度学习之基于YOLOV5的口罩检测系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 随着全球公共卫生事件的频发,口罩成为了人们日常生活中不可或缺的一部分。在公共场所&am…

slam14讲(第8讲、前端里程计)LK光流、直接法

直接法的引出 因为第7讲大部分都是讲特征点法,通过提取orb特征点和点的描述子,来构建两帧图像之间的特征点对应关系。这种方法会有缺点: 关键点和描述子提取计算耗时,如果相机的频率高,则slam算法大部分耗时被占。特…

轻量SEO分析报告程序网站已开心去授权

轻量SEO分析报告程序网站已开心去授权,可以让你生成有洞察力的、 简洁的、易于理解的SEO报告,帮助你的网页排名和表现更好 网站源码免费下载地址抄笔记 (chaobiji.cn)https://chaobiji.cn/

算法学习:快速排序

🔥 个人主页:空白诗 文章目录 🚀 引言📌 快速排序算法核心思想1. 选择基准值(Pivot)2. 分区操作(Partitioning)3. 递归排序子序列 📌 JavaScript 实现1. 快速排序主函数2…

OGG几何内核-BRepBuilderAPI_MakeEdge学习

OGG几何内核fork自OCCT 7.7.0, BRepBuilderAPI_MakeEdge是几何内核的一个重要和基础的功能,也十分复杂,因为要支持line、circle、ellipse,parabola,hyperbola,circle,beziercurve,b…

Web前端开发技术-格式化文本 Web页面初步设计

目录 Web页面初步设计 标题字标记 基本语法: 语法说明: 添加空格与特殊符号 基本语法: 语法说明: 特殊字符对应的代码: 代码解释: 格式化文本标记 文本修饰标记 计算机输出标记 字体font标记 基本语法: 属…

《TortoiseSVN》简单使用说明

##################工作记录#################### 常用图标说明 一个新检出的工作副本 修改过的文件 更新过程遇到冲突的文件 你当前对文件进行了锁定,不要忘记不使用后要解锁,否则别人无法使用 当前文件夹下的某些文件或文件夹已经被调度从版本控制…

BUUCTF靶场 [reverse]easyre、reverse1、reverse2

工具: DIE:下载:https://download.csdn.net/download/m0_73981089/89334360 IDA:下载:https://hex-rays.com/ida-free/ 新手小白勇闯逆向区!!! [reverse]easyre 首先查壳&#xf…

一刷后日谈

后日谈 1.前言 ​ 今天是一刷结束的日子,回顾一路走过来的路,还是得对自己说声谢谢的; ​ 我是一个向来都很抗拒编程的人,那繁琐的符号让我觉得很是头疼,本科期间数据结构与算法都重修了三次,最后临近毕…

Redis --学习笔记

Redis简介 一个基于内存的key-value结构数据库。Redis 是互联网技术领域使用最为广泛的存储中间件 特点: 基于内存存储,读写性能高 适合存储热点数据(热点商品、资讯、新闻) 企业应用广泛 Redis默认端口号为6379 Redis是用…

Shell之(正则表达式)

目录 一、正则表达式的概括 常用选项 基础正则表达式 查看以xxx为开头 查看以xxx为结尾的文件内容 匹配单个或多个字符 匹配中括号里的内容 对子表达式进行多次或者限定次数的匹配 拓展正则表达式的基本用法 扩展元字符 匹配前面的字符或表达式至少1次&#xff0…

分布式微服务之springboot学习[上]

文章目录 SpringBoot基本介绍官方文档springboot是什么?springboot快速入门需求/图解说明完成步骤快速入门小结 Spring SpringMVC SpringBoot的关系梳理关系如何理解 -约定优于配置 依赖管理和自动配置依赖管理什么是依赖管理修改自动仲裁/默认版本号 starter场景启动器starte…

CSDN智能总结助手

github项目地址: https://github.com/anjude/little-demo/tree/master 获取CSDN的user name和user token 打开csdn,打开控制台 - Application - Cookies,找到domain为blog.csdn.net的cookie,复制user_name和user_token的值 把上…

【计网】广播域和冲突域

一、相关概念 1.各层次设备 2.冲突域 2.1定义 冲突域通俗来讲就是在同一个网络中,两台设备同时传输的话会产生冲突。位于OSI的第一层:物理层 例如在集线器场景下,集线器属于物理层设备,它不具备交换机的功能,当收到节…

PIM Anycast RP(PIM实现)

拓扑图 配置 配置全局使能组播路由 配置OSPF 配置PIM-SM 配置anycast-rp,Loopback 1为Anycast-RP地址,Loopback 0为Anycast-RP本地地址 配置IGMP sysname AR1 # multicast routing-enable # interface GigabitEthernet0/0/0ip address 10.1.12.1 2…