python tkinter数据库通讯录_python连接Mysql数据库写的小电话本
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数据库写的小电话本相关推荐
- python数据库教程_Python连接mysql数据库及简单增删改查操作示例代码
1.安装pymysql 进入cmd,输入 pip install pymysql: 2.数据库建表 在数据库中,建立一个简单的表,如图: 3.简单操作 3.1查询操作 #coding=utf-8 #连 ...
- python操作数据库教程_Python连接mysql数据库及简单增删改查操作示例代码
1.安装pymysql 进入cmd,输入 pip install pymysql: 2.数据库建表 在数据库中,建立一个简单的表,如图: 3.简单操作 3.1查询操作 #coding=utf-8 #连 ...
- python通过什么对象连接数据库步骤_Python连接MySQL数据库方法介绍(超详细!手把手项目案例操作)...
本文涉及到的开发环境:操作系统 Windows 10 数据库 MySQL 8.0 Python 3.7.2 pip 19.0.3 两种方法进行数据库的连接分别是PyMySQL和mysql.connec ...
- jmeter连接MySQL出错_MySQL数据库之jmeter连接mysql数据库报错Cannot create PoolableConnectionFactory...
本文主要向大家介绍了MySQL数据库之jmeter连接mysql数据库报错Cannot create PoolableConnectionFactory ,通过具体的内容向大家展现,希望对大家学习M ...
- python链接mysql 判断是否成功_python连接mysql数据库并读取数据的实现
1.安装pymysql包 pip install pymysql 注: MySQLdb只支持python2,pymysql支持python3 2.连接数据 import pymysql import ...
- python mysql数据库长连接_python 连接mysql数据库
python34之殇--DJango连接Mysql数据库 系统环境: 64位 windows 7 + python34 + Django 1.8 问题描述: 因为MySQLdb不兼容python3.x ...
- python连接mysql用哪个模块_Python连接MySQL数据库之pymysql模块使用
Python3连接MySQL 本文介绍Python3连接MySQL的第三方库--PyMySQL的基本使用. PyMySQL介绍 PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服 ...
- python连接数据库的技术_Python操作MySQL数据库的三种方法
(1) 什么是MySQLdb? MySQLdb 是用于 Python 连接 MySQL 数据库的接口,它实现了 Python 数据库 API 规范 V2.0,基于 MySQL C API 上建立的. ...
- java linux mysql数据库_Linux Java连接MySQL数据库
Linux(Ubuntu平台)Java通过JDBC连接MySQL数据库,与Windows平台类似,步骤如下: 解压 jdbc: tar -zxvf mysql-connector-java-5.1.1 ...
最新文章
- 这是一张很有趣的图片, 通常女性会先看到月亮, 男性会先看到人脸. 如果相反, 表示你体内的异性荷尔蒙偏高哦!...
- 容易混淆的php函数,个人笔记
- 社区运营破冰也有三大原则八项注意“了,你造吗?
- LeetCode 1383. 最大的团队表现值(贪心,优先队列,难)
- 解决IDEA Maven项目无法下载依赖
- 比尔·盖茨,让骆驼穿过针眼的人
- Controller的激活与URL路由
- difference softreference and weakreference
- 2015年c语言等级考试题1 10 2分,2015年计算机二级《C语言》精选练习题及答案(2)...
- Android 安装腾讯X5内核
- Linux服务器自动清理缓存
- chromebook刷机_你能在大学里得到一本Chromebook吗?
- Python绘制多维度专题地图
- Apache-DBUtils实现CRUD操作
- OpenGL ES 2.0 for Android教程(三):编译着色器并绘制到屏幕
- 74ls175四人抢答器电路图_四人智力竞赛抢答器电路原理及设计.doc
- [Git命令]上传单个文件到GitHub项目已有文件夹
- 关注电动汽车能效水平 提高续航能力
- Effective C++ 总结
- reghdfe:多维面板固定效应估计