python-study-day1-(病人管理系统-带sql)

MainWindow代码

from tkinter import *
from tkinter import messagebox
from tkinter.ttk import Comboboxclass MianWindow(Frame):def __init__(self, master=None):super().__init__(master, padx=30, pady=20)self.flag = 0self.pack(expand=True, fill=BOTH)self.id = StringVar(value=' ')self.name = StringVar(value=' ')self.style = StringVar(value='')self.number = StringVar(value=' ')self.text_box = StringVar(value=' ')self.Xu_setup()def Xu_setup(self):container = Frame(self)container.pack(side=TOP, fill=X, expand=YES, pady=10)Button(master=container, text='增    加', width=10, command=self.Yao_add).pack(side=LEFT, padx=20, expand=YES)Button(master=container, text='更    改', width=10, command=self.Yao_update).pack(side=LEFT, padx=20, expand=YES)Button(master=container, text='删    除', width=10, command=self.Yao_del).pack(side=LEFT, padx=20, expand=YES)Button(master=container, text='查    询', width=10, command=self.Yao_select).pack(side=LEFT, padx=20, expand=YES)container = Frame(self)container.pack(side=TOP, fill=X, expand=YES, pady=20)lbl1 = Label(master=container, text="编     号", width=10, font=("微软雅黑", 11))lbl1.pack(side=LEFT, padx=5)self.ent1 = Entry(master=container, textvariable=self.id)self.ent1.pack(ipady=8, side=LEFT, padx=5)lbl2 = Label(master=container, text="姓      名", width=10, font=("微软雅黑", 11))lbl2.pack(side=LEFT, padx=5)self.ent2 = Entry(master=container, textvariable=self.name)self.ent2.pack(ipady=8, side=LEFT, padx=5, fill=X)lbl_box = Label(master=container, text="性       别", width=10, font=("微软雅黑", 11))lbl_box.pack(side=LEFT, padx=5)self.comboxlist = Combobox(master=container, textvariable=self.text_box, width=5)self.comboxlist["values"] = ("男", "女")self.comboxlist.current(0)self.comboxlist.bind("<<ComboboxSelected>>", self.func)self.comboxlist.pack(ipady=8, side=RIGHT, fill=X)container = Frame(self)container.pack(side=TOP, fill=X, expand=YES, pady=20)lbl3 = Label(master=container, text="病      型", width=10, font=("微软雅黑", 11))lbl3.pack(side=LEFT, padx=5)self.ent3 = Entry(master=container, textvariable=self.style)self.ent3.pack(ipady=8, side=LEFT, padx=5, fill=X, expand=YES)lbl4 = Label(master=container, text="年      龄", width=10, font=("微软雅黑", 11))lbl4.pack(side=LEFT, padx=5)self.ent4 = Entry(master=container, textvariable=self.number)self.ent4.pack(ipady=8, side=LEFT, padx=5, fill=X, expand=YES)container = Frame(self)container.pack(side=TOP, fill=X, expand=YES, pady=20)self.text = Text(master=container)scroll = Scrollbar()scroll.pack(side=RIGHT, fill=Y)scroll.config(command=self.text.yview)self.text.config(yscrollcommand=scroll.set)self.text.pack(fill=X, expand=YES)self.text.insert(INSERT, "")def func(self, *args):self.flag = 1print(self.flag)return self.flagdef clear(self):self.ent1.delete(0, "end")self.ent2.delete(0, "end")self.ent3.delete(0, "end")self.ent4.delete(0, "end")def Yao_add(self):if len(self.id.get()) == 0:messagebox.askokcancel("确定/退出对话框", "插入失败,编号为空")self.clear()returnif len(self.name.get()) == 0:messagebox.askokcancel("确定/退出对话框", "插入失败,名称为空")self.clear()returnif len(self.style.get()) == 0:messagebox.askokcancel("确定/退出对话框", "插入失败,病型为空")self.clear()returnif len(self.number.get()) == 0:messagebox.askokcancel("确定/退出对话框", "插入失败,年龄为空")self.clear()returnif self.flag == 0:messagebox.askokcancel("确定/退出对话框", "插入失败,性别未选")self.clear()returnelse:from Patient.db import Connectcon = Connect()con.Zhou_insert(int(self.id.get()),self.name.get(),self.text_box.get(),self.style.get(),self.number.get())messagebox.showinfo("打印信息对话框", "插入成功")self.clear()from Patient.db import Connectcon= Connect()all_ = con.Print_result()for data in all_:s = "编号:%d \t姓名:%s\t性别:%s\t病型:%s\t年龄:%s\n\n" % dataself.text.insert(INSERT, s)def Yao_update(self):if len(self.id.get()) != 0 and len(self.name.get()) != 0 and len(self.number.get()) != 0:from Patient.db import Connectcon = Connect()re = con.Zhou_update(int(self.id.get()), self.name.get(), self.number.get())if re:messagebox.askokcancel("确定/退出对话框", "执行成功")self.clear()from Patient.db import Connectcon = Connect()all_ = con.Print_result()for data in all_:s = "编号:%d \t姓名:%s\t性别:%s\t病型:%s\t年龄:%s\n\n" % dataself.text.insert(INSERT, s)else:messagebox.askokcancel("确定/退出对话框", "执行失败,或数据不存在")self.clear()returnreturnelif len(self.id.get()) != 0 and len(self.name.get()):from Patient.db import Connectcon = Connect()re = con.update_name(int(self.id.get()), self.name.get())if re:messagebox.askokcancel("确定/退出对话框", "执行成功")self.clear()from Patient.db import Connectcon = Connect()all_ = con.Print_result()for data in all_:s = "编号:%d \t姓名:%s\t性别:%s\t病型:%s\t年龄:%s\n\n" % dataself.text.insert(INSERT, s)else:messagebox.askokcancel("确定/退出对话框", "执行失败,或数据不存在在")self.clear()returnreturnelif len(self.id.get()) != 0 and len(self.number.get()) != 0:from Patient.db import Connectcon = Connect()re = con.update_number(int(self.id.get()), self.number.get())if re:messagebox.askokcancel("确定/退出对话框", "执行成功")self.clear()from Patient.db import Connectcon = Connect()all_ = con.Print_result()for data in all_:s = "编号:%d \t姓名:%s\t性别:%s\t病型:%s\t年龄:%s\n\n" % dataself.text.insert(INSERT, s)else:messagebox.askokcancel("确定/退出对话框", "执行失败,或数据不存在在")self.clear()returnreturnelse:messagebox.askokcancel("确定/退出对话框", "执行失败,或数据不存在在")self.clear()returndef Yao_del(self):from Patient.db import Connectcon = Connect()re = con.delete_id(int(self.id.get()))if re:messagebox.askokcancel("确定/退出对话框", "执行成功")self.clear()from Patient.db import Connectcon = Connect()all_ = con.Print_result()for data in all_:s = "编号:%d \t姓名:%s\t性别:%s\t病型:%s\t年龄:%s\n\n" % dataself.text.insert(INSERT, s)else:messagebox.askokcancel("确定/退出对话框", "执行失败,或数据不存在在")self.clear()returndef Yao_select(self):self.clear()from Patient.db import Connectcon = Connect()all_ = con.Print_result()for data in all_:s = "编号:%d \t姓名:%s\t性别:%s\t病型:%s\t年龄:%s\n\n" % dataself.text.insert(INSERT, s)if __name__ == '__main__':root = Tk()root.geometry('800x500')root.title("病人信息登记")MianWindow(root)root.mainloop()

db代码

import pymysql.cursorsclass Connect:def get_connect(self):self.connect = pymysql.Connect(host='localhost',port=3306,user='root',password='admin123',database='person',charset='utf8')self.cursor = self.connect.cursor()def Print_result(self):self.get_connect()sql = "select * from person"self.cursor.execute(sql)all_ = self.cursor.fetchall()for data in all_:print("编号:%d \t名称:%s \t性别:%s\t类型:%s\t数值:%s\n" % data)self.connect.commit()self.connect.close()return all_def Zhou_insert(self, id, name, sex, style, number):self.get_connect()sql = "insert into person (id,name ,sex,style,number) values (%d,'%s','%s','%s','%s')"self.cursor.execute(sql % (id, name, sex, style, number))self.connect.commit()self.connect.close()def Zhou_update(self, number, name, id):self.get_connect()sql = "UPDATE person SET number ='%s',name ='%s' WHERE id = %d;"re = self.cursor.execute(sql % (id, name, number))self.connect.commit()self.connect.close()return redef update_name(self, name, id):  #self.get_connect()try:sql = "UPDATE person SET name ='%s' WHERE id = %d;"re = self.cursor.execute(sql % (id, name))except pymysql.err:self.connect.commit()print("执行错误")finally:self.connect.close()return redef update_number(self, id, number):self.get_connect()sql = "UPDATE person SET number ='%s'WHERE id = %d;"re = self.cursor.execute(sql % (number, id))self.connect.commit()self.connect.close()return redef delete_id(self, id):self.get_connect()sql = "DELETE FROM person WHERE id = %d"re = self.cursor.execute(sql % id)self.connect.commit()self.connect.close()return reif __name__ == '__main__':c = Connect()

效果图

 部署

需要的私,v:13053025350

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

七大设计原则

在软件开发的领域中&#xff0c;随着技术的不断进步和市场需求的不断变化&#xff0c;软件系统的设计和维护变得越来越重要。为了确保软件系统能够长期有效地运行&#xff0c;并且能够在未来的发展中适应新的需求和技术变化&#xff0c;提高软件系统的可维护性和可复用性成为了…

【数字IC/FPGA】什么是无符号数?什么是有符号数?

进制 虽然在日常生活中&#xff0c;我们已经习惯了使用10进制数字&#xff0c;但在由数字电路构成的数字世界中&#xff0c;2进制才是效率更高的选择。 10进制与2进制 10进制&#xff08;decimal&#xff09;计数法&#xff08;一般也叫阿拉伯计数法&#xff09;是在日常生活…

SpringBoot集成Kafka之SASL_SSL

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff0c;这篇文章男女通用&#xff0c;看懂了就去分享给你的码吧。 Kafka 是一个由 Li…

软件无线电安全之HackRF One初探

HackRF介绍 HackRF是一款开源软件无线电&#xff08;SDR&#xff09;平台&#xff0c;由Great Scott Gadgets公司推出。它具有广泛的频率覆盖范围&#xff0c;从1 MHz到6 GHz&#xff0c;支持大部分常见的无线通信频段。采用软件定义无线电技术&#xff0c;HackRF提供了自定义…

最优算法100例之43-包含min函数的栈

专栏主页:计算机专业基础知识总结(适用于期末复习考研刷题求职面试)系列文章https://blog.csdn.net/seeker1994/category_12585732.html 题目描述 题目描述: 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数,在该栈中,调用min,push及pop的时间复杂…

DC-2靶机知识点

知识点总结 1.IP访问与域名访问 2.端口扫描 3.目录扫描 4.cewl密码生成器 5.指纹探测 6.爆破ssh 7.msf的使用 8.rbash逃逸 9.git提权 靶机&#xff0c;攻击机就不多说了&#xff0c;给个靶机地址 https://download.vulnhub.com/dc/DC-2.zip 环境配置 因为访问该靶机…

移动应用安全合规动态:网信办、金管局发文强调数据安全;3月个人信息违规抽查结果出炉!(第五期)

一、监管部门动向&#xff1a;国家互联网信息办公室公布《促进和规范数据跨境流动规定》; 工信部发布《关于网络安全保险典型服务方案目录的公示》 二、安全新闻&#xff1a;恶意软件警报&#xff01;黑客利用软件即服务攻击印度安卓用户&#xff1b;Cerberus银行恶意软件的虚…

杭州掀起快递物流创新浪潮,2024长三角快递物流展7月共绘智慧物流新蓝图

杭州&#xff0c;作为中国的电商之都&#xff0c;近年来在快递物流行业背景与应用方面取得了显著的发展。随着电子商务的迅猛增长&#xff0c;杭州的快递物流行业迅速崛起&#xff0c;成为支撑电商产业发展的重要力量。 2024长三角&#xff08;杭州&#xff09;快递物流供应链…

vue3.4 新特性 defineModel() 宏

v-model 简介 官网是这样解释 v-model 的 v-model 的功能是&#xff0c;实现数据的双向绑定【本质上是 :value 和 input 语法糖】 如果是表单元素&#xff0c;下面两种写法是一样&#xff0c;这时v-model就是语法糖&#xff0c;帮你简化了操作 <input v-model"messag…

浅尝一下ECS(Entity Component System)(学习笔记)

参考文章&#xff1a;浅谈Unity ECS&#xff08;一&#xff09;Uniy ECS基础概念介绍&#xff1a;面向未来的ECS - 知乎 (zhihu.com) 视频链接&#xff1a;【青幻译制】GDC讲座系列之三 守望先锋的游戏架构和网络代码_哔哩哔哩_bilibili 云风的 BLOG: 浅谈《守望先锋》中的 E…

机器学习—特征预处理和降维(四)

什么是特征预处理&#xff1f; 通过一些转换函数将特征数据转换成更加适合算法模型的特征数据过程 1包含内容 数值型数据的无量纲化&#xff1a; 归一化标准化 2特征预处理API sklearn. preprocessing为什么要进行归一化 or 标准化&#xff1f; 特征的单位或者大小相差较大…

neo4j使用详解(十八、java driver使用及性能优化<高级用法>——最全参考)

Neo4j系列导航&#xff1a; neo4j安装及简单实践 cypher语法基础 cypher插入语法 cypher插入语法 cypher查询语法 cypher通用语法 cypher函数语法 neo4j索引及调优 neo4j java Driver等更多 1.依赖引入 <dependency><groupId>org.neo4j.driver</groupId><…