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" )
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( )