importtkinterimportpymysqlfrom tkinter import *

from tkinter importttk

window=tkinter.Tk()#创建窗口

window.title("电话簿")#设置标题

window.geometry('500x500+500+200')#设置大小偏移量

window.resizable(width=False,height=False)#禁用宽高

database = pymysql.connect(host="localhost", user="root", password="******",

db="phonebook", port=3306, charset="utf8")

ListN=ttk.Treeview(window)

ListN=ttk.Treeview(window,show="headings",height=10,columns=("a","b","c","d"))#ListN["columns"]=("a","b","c","d")

ListN.column("a",width=60)

ListN.column("b",width=100)

ListN.column("c",width=120)

ListN.column("d",width=200)

ListN.heading("a",text="姓名")

ListN.heading("b",text="电话")

ListN.heading("c",text="邮箱")

ListN.heading("d",text="住址")

ListN["selectmode"]="browse"

defDeleteInfo(name,phone):

sql_delete=r"delete from info where name='%s'"\

r"and phone='%s';" %(name,phone)

cur=database.cursor()try:

cur.execute(sql_delete)

database.commit()exceptException as e:

database.rollback()

cur.close()defListAll():

sql_sel_all="select * from info;"cur=database.cursor()try:

cur.execute(sql_sel_all)

results=cur.fetchall()#print("姓名","电话","邮箱","住址")

#首先删除表格中的原节点数据

for _ in map(ListN.delete,ListN.get_children("")):passii=0for row inresults:

name=row[0]

phone=row[1]

mail=row[2]

address=row[3]#print(name,phone,mail,address)

ListN.insert("",ii,text=ii+1,values=(name,phone,mail,address))

ii=ii+1

exceptException as e:raisee

cur.close()def InsertInfo(name,phone,mail=None,address=None):

sql_insert=r"insert into info (name,phone,"\

r"mail,address) values ('%s','%s','%s',"\

r"'%s');" %(name,phone,mail,address)

cur=database.cursor()try:

cur.execute(sql_insert)

database.commit()exceptException as e:

database.rollback()

cur.close()defNodes():

notenote1="说明:"notenote2="添加联系人时至少输入姓名和电话"notenote3="邮箱和住址可以省略,可以添加同名"notenote4="但不能添加同名,同电话的信息"notenote5="删除时只需选中要删除的项,然后点击"notenote6="删除联系人按钮即可删除"note1=Label(window,text=notenote1)

note1.pack()

Label(window,text=notenote2).pack()

Label(window,text=notenote3).pack()

Label(window,text=notenote4).pack()

Label(window,text=notenote5).pack()

Label(window,text=notenote6).pack()pass

#创建子窗口

defzwindow():

zwin=tkinter.Tk()

zwin.title("添加")

zwin.geometry('350x200+520+350')

zwin.resizable(width=False,height=False)

Ln=Label(zwin,text="姓名")

Lp=Label(zwin,text="电话")

Lm=Label(zwin,text="邮箱")

La=Label(zwin,text="地址")

Ln.grid(row=0)

Lp.grid(row=1)

Lm.grid(row=2)

La.grid(row=3)

e1=Entry(zwin)

e2=Entry(zwin)

e3=Entry(zwin)

e4=Entry(zwin)

e1.grid(row=0,column=1)

e2.grid(row=1,column=1)

e3.grid(row=2,column=1)

e4.grid(row=3,column=1)defInsertI():

InsertInfo(e1.get(), e2.get(), e3.get(), e4.get())

zwin.destroy()

ListAll()

YButton=Button(zwin,text='确定',command=InsertI)

NButton=Button(zwin,text='取消',command=zwin.destroy)

YButton.grid(row=4,column=1,padx=3)

NButton.grid(row=4,column=2)defDelete():#ListN.

items=ListN.selection()#返回被选中行的ID

Delete_name=ListN.item(items)["values"][0]

Delete_phone=ListN.item(items)["values"][1]#print(items)

#print(ListN.item(items))

#print(Delete_name)

#print(Delete_phone)

DeleteInfo(Delete_name,Delete_phone)

ListAll()passInsertB=Button(window,text='添加联系人',command=zwindow)

DeleteB=Button(window,text='删除联系人',command=Delete)

ListAll()

ListN.pack()

InsertB.pack()

DeleteB.pack()

Nodes()

window.mainloop()

python tkinter数据库通讯录_python连接Mysql数据库写的小电话本相关推荐

  1. python数据库教程_Python连接mysql数据库及简单增删改查操作示例代码

    1.安装pymysql 进入cmd,输入 pip install pymysql: 2.数据库建表 在数据库中,建立一个简单的表,如图: 3.简单操作 3.1查询操作 #coding=utf-8 #连 ...

  2. python操作数据库教程_Python连接mysql数据库及简单增删改查操作示例代码

    1.安装pymysql 进入cmd,输入 pip install pymysql: 2.数据库建表 在数据库中,建立一个简单的表,如图: 3.简单操作 3.1查询操作 #coding=utf-8 #连 ...

  3. python通过什么对象连接数据库步骤_Python连接MySQL数据库方法介绍(超详细!手把手项目案例操作)...

    本文涉及到的开发环境:操作系统 Windows 10 数据库 MySQL 8.0 Python 3.7.2 pip 19.0.3 两种方法进行数据库的连接分别是PyMySQL和mysql.connec ...

  4. jmeter连接MySQL出错_MySQL数据库之jmeter连接mysql数据库报错Cannot create PoolableConnectionFactory...

    本文主要向大家介绍了MySQL数据库之jmeter连接mysql数据库报错Cannot create PoolableConnectionFactory  ,通过具体的内容向大家展现,希望对大家学习M ...

  5. python链接mysql 判断是否成功_python连接mysql数据库并读取数据的实现

    1.安装pymysql包 pip install pymysql 注: MySQLdb只支持python2,pymysql支持python3 2.连接数据 import pymysql import ...

  6. python mysql数据库长连接_python 连接mysql数据库

    python34之殇--DJango连接Mysql数据库 系统环境: 64位 windows 7 + python34 + Django 1.8 问题描述: 因为MySQLdb不兼容python3.x ...

  7. python连接mysql用哪个模块_Python连接MySQL数据库之pymysql模块使用

    Python3连接MySQL 本文介绍Python3连接MySQL的第三方库--PyMySQL的基本使用. PyMySQL介绍 PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服 ...

  8. python连接数据库的技术_Python操作MySQL数据库的三种方法

    (1) 什么是MySQLdb? MySQLdb 是用于 Python 连接 MySQL 数据库的接口,它实现了 Python 数据库 API 规范 V2.0,基于 MySQL C API 上建立的. ...

  9. java linux mysql数据库_Linux Java连接MySQL数据库

    Linux(Ubuntu平台)Java通过JDBC连接MySQL数据库,与Windows平台类似,步骤如下: 解压 jdbc: tar -zxvf mysql-connector-java-5.1.1 ...

最新文章

  1. 这是一张很有趣的图片, 通常女性会先看到月亮, 男性会先看到人脸. 如果相反, 表示你体内的异性荷尔蒙偏高哦!...
  2. 容易混淆的php函数,个人笔记
  3. 社区运营破冰也有三大原则八项注意“了,你造吗?
  4. LeetCode 1383. 最大的团队表现值(贪心,优先队列,难)
  5. 解决IDEA Maven项目无法下载依赖
  6. 比尔·盖茨,让骆驼穿过针眼的人
  7. Controller的激活与URL路由
  8. difference softreference and weakreference
  9. 2015年c语言等级考试题1 10 2分,2015年计算机二级《C语言》精选练习题及答案(2)...
  10. Android 安装腾讯X5内核
  11. Linux服务器自动清理缓存
  12. chromebook刷机_你能在大学里得到一本Chromebook吗?
  13. Python绘制多维度专题地图
  14. Apache-DBUtils实现CRUD操作
  15. OpenGL ES 2.0 for Android教程(三):编译着色器并绘制到屏幕
  16. 74ls175四人抢答器电路图_四人智力竞赛抢答器电路原理及设计.doc
  17. [Git命令]上传单个文件到GitHub项目已有文件夹
  18. 关注电动汽车能效水平 提高续航能力
  19. Effective C++ 总结
  20. reghdfe:多维面板固定效应估计

热门文章

  1. wordpress 高并发_HyperDB的高可用性WordPress
  2. ZUCC_Linux系统管理_实验四 用户和分组管理
  3. 西西弗的石头----读《哲学家都干了些什么》有感
  4. 【技术分享】一封伪造邮件引发的研究
  5. Mahout0.9—Hadoop2.20—FPG关联规则算法
  6. android系统库
  7. Selenium 键盘事件 操作大全
  8. Trino-378安装部署
  9. vector 排序方法sort的使用
  10. c语言把下划线换成空格,python - 如何用下划线替换空格,反之亦然?