这是一个比较复杂的项目,需要涉及到Python的GUI库、pymysql的数据库连接和操作等知识。以下是一个简单的示例代码,供参考:

import pymysql
import tkinter as tk
from tkinter import ttk

# 数据库连接参数
HOST = 'localhost'
PORT = 3306
USER = 'root'
PASSWORD = 'password'
DB_NAME = 'test_db'

# 表格字段
FIELDS = ['姓名', '身份证号', '性别', '联系电话', '户籍地址', '警衔', '婚姻状况', '民族', '政治面貌', '年龄']

# 创建数据库连接
conn = pymysql.connect(host=HOST, port=PORT, user=USER, password=PASSWORD, db=DB_NAME)

# 创建窗口
root = tk.Tk()
root.title('数据库操作')
root.geometry('800x600')

# 创建表格控件
table = ttk.Treeview(root, columns=FIELDS, show='headings')
for field in FIELDS:
    table.heading(field, text=field)
table.pack()

# 查询数据
def query_data():
    # 清空表格中的数据
    table.delete(*table.get_children())
    
    # 查询数据库中的数据
    cursor = conn.cursor()
    cursor.execute('SELECT * FROM test_table')
    rows = cursor.fetchall()
    
    # 在表格中显示查询结果
    for row in rows:
        table.insert('', 'end', values=row)

# 插入数据
def insert_data():
    # 获取用户输入的数据
    values = []
    for field in FIELDS:
        value = input(f'请输入{field}: ')
        values.append(value)
    
    # 插入数据到数据库中
    cursor = conn.cursor()
    sql = f"INSERT INTO test_table ({','.join(FIELDS)}) VALUES ({','.join(['%s']*len(FIELDS))})"
    cursor.execute(sql, values)
    conn.commit()
    
    # 在表格中显示插入结果
    table.insert('', 'end', values=values)

# 删除数据
def delete_data():
    # 获取用户选中的数据
    selected = table.selection()
    if len(selected) == 0:
        return
    
    # 从数据库中删除选中的数据
    cursor = conn.cursor()
    for item in selected:
        values = table.item(item)['values']
        sql = f"DELETE FROM test_table WHERE 姓名=%s AND 身份证号=%s"
        cursor.execute(sql, values[:2])
    conn.commit()
    
    # 在表格中删除选中的行
    for item in selected:
        table.delete(item)

# 修改数据
def update_data():
    # 获取用户选中的数据
    selected = table.selection()
    if len(selected) == 0:
        return
    
    # 获取用户输入的新数据
    new_values = []
    for field in FIELDS:
        value = input(f'请输入{field}: ')
        new_values.append(value)
    
    # 更新数据库中的数据
    cursor = conn.cursor()
    sql = f"UPDATE test_table SET {','.join([f'{field}=%s' for field in FIELDS])} WHERE 姓名=%s AND 身份证号=%s"
    values = new_values + table.item(selected[0])['values'][:2]
    cursor.execute(sql, values)
    conn.commit()
    
    # 在表格中更新选中的行
    table.item(selected[0], values=new_values)

# 创建操作按钮
frame = tk.Frame(root)
frame.pack(pady=10)

btn_query = tk.Button(frame, text='查询', command=query_data)
btn_query.pack(side='left', padx=10)

btn_insert = tk.Button(frame, text='插入', command=insert_data)
btn_insert.pack(side='left', padx=10)

btn_delete = tk.Button(frame, text='删除', command=delete_data)
btn_delete.pack(side='left', padx=10)

btn_update = tk.Button(frame, text='修改', command=update_data)
btn_update.pack(side='left', padx=10)

# 启动窗口
root.mainloop()

# 关闭数据库连接
conn.close()

这个代码中,我们使用了tkinter库创建了一个窗口,其中包含一个表格控件和四个操作按钮(查询、插入、删除、修改)。在每个按钮的回调函数中,我们使用pymysql库进行了相应的数据库操作,然后在表格中显示或删除相应的行。需要注意的是,为了避免SQL注入等安全问题,我们使用了pymysql库的参数化查询功能,而不是直接拼接SQL语句

用python制作一个窗口通过按钮将MySQL使用pymysql来连接中数据库的一个表进行增删改查功能数据库信息包括姓名身份证号性别联系电话户籍地址警衔婚姻状况民族政治面貌年龄

原文地址: https://www.cveoy.top/t/topic/e9bT 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录