当前位置: 首页 > news >正文

python实现数据库的增删改查功能,图形化版本

import tkinter
from tkinter import *
import psycopg2
from tkinter import messagebox#连接信息
t_conn={"dbname": "d1","user": "u1","password": "123qqq...A","port": "15400","host": "59.110.159.243"
}
try:conn=psycopg2.connect(**t_conn)
except psycopg2.Error as e:print("conn failed")
# def conn:
#     try:
#         conn=psycopg2.connect(**t_conn)
#         return conn
#     except exception as e:
#         print('连接失败')
currsor=conn.cursor()
#创建表
currsor.execute('''create table if not exists a2(id int,name varchar)''')def insert_db():id=insert_id_Entery.get()if id=="":print("输入为空")else:print("插入的id:",id)name=insert_name_Entry.get()if name=="":print("name不能为空")else:print("插入中")print("插入id对应的name值是:",name)result=messagebox.askokcancel("确认","确认插入吗")if result:currsor.execute(f"insert into a2 (id,name) values ('{id}','{name}')")messagebox.showinfo("信息","插入完成")conn.commit()print("插入成功")else:messagebox.showinfo("信息","取消插入")conn.rollback()
def delete_db():id=delete_id_Entry.get()if id=="":print("输入为空")else:print("删除中")print("删除的id:",id)result=messagebox.askokcancel("确认","确认删除吗")if result:currsor.execute(f"delete from a2 where id='{id}'")messagebox.showinfo("信息","删除完成")conn.commit()else:messagebox.showinfo("信息","取消删除")conn.rollback()
def update_db():id=update_id_Entry.get()if id=="":print("id不能为空")else:print("更新的id行是:",id)name=update_name_Entry.get()if name=="":print("name不能为空")else:print("更新中")print("更新id对应的name值是:",name)print("更新完成")result=messagebox.askokcancel("确认","确认更新吗")if result:currsor.execute(f"update a2 set name='{name}' where id='{id}'")messagebox.showinfo("信息","更新完成")conn.commit()else:messagebox.showinfo("信息","取消更新")conn.rollback()
def select_db():currsor.execute("select * from a2")row=currsor.fetchall()if row==[]:print("数据表为空")else:for i in row:print(i)
#开窗口
win=tkinter.Tk()
win.title('数据库增删改查')#增加
insert_id_label=tkinter.Label(win,text="添加id值:")
insert_id_Entery=tkinter.Entry(win)
insert_name_label=tkinter.Label(win,text="添加name值:")
insert_name_Entry=tkinter.Entry(win)
insert_button=Button(win,text='增加',command=insert_db)
insert_id_label.grid(row=0,column=0)
insert_name_label.grid(row=1,column=0)
insert_id_Entery.grid(row=0,column=1)
insert_name_Entry.grid(row=1,column=1)
insert_button.grid(row=2,column=0,columnspan=2)
#删除
delete_id_label=tkinter.Label(win,text="删除id值:")
delete_id_Entry=tkinter.Entry(win)
delete_button=Button(win,text='删除',command=delete_db)
delete_id_label.grid(row=3,column=0)
delete_id_Entry.grid(row=3,column=1)
delete_button.grid(row=4,column=0,columnspan=2)#更新
update_id_label=tkinter.Label(win,text="更新的id:")
update_id_Entry=tkinter.Entry(win)
update_name_label=tkinter.Label(win,text="更新id的name为:")
update_name_Entry=tkinter.Entry(win)
update_button=Button(win,text='修改',command=update_db)
update_id_label.grid(row=5,column=0)
update_id_Entry.grid(row=5,column=1)
update_name_label.grid(row=6,column=0)
update_name_Entry.grid(row=6,column=1)
update_button.grid(row=7,column=0,columnspan=2)
#查询
select_button=Button(win,text='查询结果',command=select_db)
select_button.grid(row=8,column=0,columnspan=2)
win.mainloop()
#关闭连接
currsor.close()
conn.close()
http://www.lryc.cn/news/469674.html

相关文章:

  • pipeline开发笔记
  • spark读取parquet文件
  • redis详细教程(1.String类型)
  • 用友U8接口-库存管理(7)
  • Spring Boot HikariCP数据库连接池入门
  • Docker快速上手教程:MacOS系统【安装/配置/使用/原理】全链路速通
  • 【JavaSE】认识String类,了解,进阶到熟练掌握
  • vue3 vben-admin 窗口大小更改后 echarts尺寸变为 100px的问题
  • Web应用框架-Django应用基础(3)-Jinja2
  • js(深浅拷贝,节流防抖,this指向,改变this指向的方法)
  • 香橙派5(RK3588)使用npu加速yolov5推理的部署过程
  • 基于MWORKS的蓝桥杯「智能装备数字化建模大赛」正式发布,首期培训本周六开启
  • 021、深入解析前端请求拦截器
  • windows中的tracert命令
  • 【玩儿】Java 数字炸弹小游戏(控制台版)+ IO 数据存储
  • 今日头条躺赚流量:自动化新闻爬取和改写脚本
  • 日常实习与暑期实习详解
  • Git的原理和使用(六)
  • Elasticsearch 中的高效按位匹配
  • LSTM,全称长短期记忆网络(Long Short-Term Memory),是一种特殊的循环神经网络(RNN)结构
  • 导出问题处理
  • 通过cv库智能切片 把不同的分镜切出来 自媒体抖音快手混剪
  • 【机器学习】——numpy教程
  • 多线程——线程的状态
  • 开源数据库 - mysql - 组织结构(与oracle的区别)
  • vue3+vite 部署npm 包
  • 华为鸿蒙HarmonyOS应用开发者高级认证视频及题库答案
  • 【计网】从零开始认识IP协议 --- 认识网络层,认识IP报头结构
  • 大一物联网要不要转专业,转不了该怎么办?
  • LeetCode题练习与总结:4的幂--342