Python 实例:手机通讯录(使用GUI图形界面并用mysql记录数据)

该博客介绍了一个使用Python GUI创建的手机通讯录应用,通过集成MySQL数据库来存储联系人信息。开发者只需修改数据库连接参数即可轻松部署。
摘要由CSDN通过智能技术生成

使用数据库远比使用text文本记录数据方便、简单、代码也简洁,少
运行截图:
在这里插入图片描述
代码复制粘贴后只要修改一下自己数据库的用户名和密码就可以使用了
在这里插入图片描述
贴代码~

import tkinter
import tkinter.messagebox
import pymysql

class MainForm:
    def __init__(self):
        root = tkinter.Tk()# 根窗体
        # 标题名称
        root.title('通讯录')
        # 设置窗体初始大小
        root.geometry("650x550")
        # 设置窗体不可拉升
        root.resizable(width=False, height=False)
        # ---------------设置数据库----------------

        # 连接数据库
        conn = pymysql.connect(
            host='localhost',
            user='root',#数据库用户名
            password='*****',#数据库密码
            port=3306,
            charset='utf8'
        )
        # 获得游标
        cursor = conn.cursor()
        # 创建数据库-phonebook
        sql_creat = "create database if not exists phonebook"
        cursor.execute(sql_creat)
        # 创建数据表-phonebook,并设定相关属性--名字,号码,邮箱,地址
        sql_use = 'use phonebook'
        cursor.execute(sql_use)
        sql_table = 'create table if not exists perinfo(perName varchar(20) primary key,' \
                    'perNumber varchar(10) not null,' \
                    'perEmail varchar(20) not null,' \
                    'perAddress varchar(45) not null )'
        cursor.execute(sql_table)

        # 添加新联系人
        def handler_1(event):
            def newinfo(event):
                name = name_str.get()
                phone = phone_num.get()
                mail = mail_adr.get()
                address = adr_str.get()
                if name == "" or phone == "" or mail == "" or address == "":
                    tkinter.messagebox.showerror('错误', '所填信息不能为空')
                else:
                    # 向数据库插入一条记录 ,字符串和数字的区别:values(%d , '%s')
                    sql = "insert into perinfo(perName, perNumber, perEmail, perAddress) values ('%s','%s','%s','%s')"
                    data = (name, phone, mail, address)
                    # data = ('小张',151, '325767@qq.com', '南昌')
                    # data = (name_str.get(), phone_num.get(), mail_adr.get(), adr_str.get())
                    cursor.execute(sql % data)
                    conn.commit()
                    # 弹出注册成功消息框
                    tkinter.messagebox.showinfo('消息提示框', f'添加“{
     name}“为联系人成功!')
                    # 注册成功关闭注册框
                    window_add.destroy()

            # 新建注册界面
            window_add = tkinter.Toplevel(root)
            window_add.geometry('300x300')
            window_add.title('注册')
            # 姓名
            name_str = tkinter.StringVar()
            tkinter.Label(window_add, text='请输入姓  名:').place(x=10, y=10)
            tkinter.Entry(window_add, textvariable=name_str).place(x=110, y=10)
            # 手机号
            phone_num = tkinter.StringVar()
            tkinter.Label(window_add, text='请输入手机号:').place(x=10, y=50)
            tkinter.Entry(window_add, textvariable=phone_num).place(x=110, y=50)
            # 邮箱
            mail_adr = tkinter.StringVar()
            tkinter.Label(window_add, text='请输入邮  箱:').place(x=10, y=90)
            tkinter.Entry(window_add, textvariable=mail_adr).place(x
  • 6
    点赞
  • 102
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值