PYTHON数据库实现图书管理

#!/usr/bin/python
# -*- coding: UTF-8 -*-
from tkinter import *
from tkinter import scrolledtext
import numpy as np
import csv
import os
import tkinter as tk
from tkinter import ttk
from tkinter.constants import CENTER, SINGLE, BOTH, N, HORIZONTAL, VERTICAL
from tkinter import messagebox as msgbox
from tkinter import Toplevel, Label, Entry, StringVar, Radiobutton, Button

def Close():
    reply = msgbox.askyesno('提示', "您确定退出系统吗?")
    if reply == True :
        root.destroy()


def csv_reader(filename):
    datas = []
    if os.path.getsize(filename):
        with open(filename, 'r', encoding='utf-8-sig', errors='ignore') as csvfile :
            reader = csv.reader(csvfile)
            datas = [row for row in reader]
    return datas


def insert(table, book_info) :
    # 插入数据
    for index, data in enumerate(book_info) :
        table.insert('', END, values=data)  # 添加数据到末尾


def IsEmpty(text) :
    if text is not None :
        return 0
    else :
        return 1


def ShowBookInfo() :
    return


# 修改书籍信息函数
def UpdateBookInfo(tree):
    # 获取选中的行
    selected_items = tree.selection()
    if not selected_items:
        msgbox.showerror(title='提示', message="请先选择一行要修改的数据!")
        return

    # 获取选中行的图书编号
    book_id = tree.item(selected_items[0])['values'][0]

    # 读取图书数据文件中的数据
    book_info = csv_reader('图书.csv')

    if book_info is not None:
        # 根据图书编号获取对应的图书信息

        # 创建修改图书信息的窗口
        UBIGUI = Toplevel()
        UBIGUI.title('修改书籍信息')
        UBIGUI.geometry('400x400')

        # 定义确认修改的函数
        def click():
            # 获取用户输入的图书信息
            num = addnuminput.get()
            title = addtitleinput.get()
            author = addauthorinput.get()
            publisher = addpublisherinput.get()
            category = v.get()

            # 判断用户是否输入了所有信息
            if IsEmpty(num) or IsEmpty(title) or IsEmpty(author) or IsEmpty(publisher) or IsEmpty(category):
                msgbox.showerror(title='提示', message="请填写所有信息!")
            else:
                # 更新图书数据文件中的信息
                book_info_new = [row if row[0] != book_id else [num, title, author, publisher, category] for row in book_info]
                with open('图书.csv', 'w', newline='', encoding='utf-8-sig') as csvfile:
                    writer = csv.writer(csvfile)
                    writer.writerows(book_info_new)

                # 更新表格中的信息
                tree.delete(selected_items[0])
                insert(tree, [[num, title, author, publisher, category]])

                # 提示修改成功
                reply = msgbox.showinfo(title='提示', message="修改成功!")
                if reply:
                    UBIGUI.destroy()

        # 创建标签和输入框,用于输入图书信息
        addnum = Label(UBIGUI, text="序号", font=("Microsoft YaHei", 10), anchor='w')
        addnum.place(x=30,
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值