Python实现图书信息管理系统,从零开始用flask+vue做一个前后端分离的案例

嗨嗨,又是美好的一天

今天给大家分享一下如何用python实现图书管理系统
手把手带你制作图书管理系统,文章末尾还有视频教程哦!!
话不多说马上开始吧

请添加图片描述

用户注册

def logon():
    print("欢迎来到图书管理系统注册页面~")
    username = input("请输入用户名:")
    if len(username)<6:
        print("用户名不能小于6个字符")
    else:
        email = input("请输入邮箱:")
        password = input("请输入密码:")
        if len(password)<8:
            print("密码不能少于8位")
        else:
            rpassword = input("请确认密码:")
            if password ==rpassword:
                print("注册成功!")
                # 函数调用,每追加一列数据都进行换行 每个数据之间都有空格
                preserve_data(path,[username,'   '+ email,'   '+ password + '\n'])
                login_tips = input('是否登录?(yes/no)')
                if login_tips =='yes':
                    login()
                else:
                    pass
                return True
            else:
                print("两次输入的密码不一致,请重新输入!")
                # 递归调用
                logon()

保存数据到文件

path = r'/Users/mozili/PYTHONWORKSPACE/bookManage/user.txt'
python学习交流Q群:770699889 ###
def preserve_data(file_path,data):
    # 将字符串转换为bytes,因为write写入的是字节流,不能是字符串 当为w时需要解码
    # data = data.encode()
    # 打开文件,追加数据到文件
    with open(file_path,'a') as wstream:
        # 判断是否可写
        if wstream.writable():
            wstream.writelines(data)
        else:
            print("没有权限!")

用户登录

def login():
    print("欢迎来到图书管理系统登录页面~")
    tips = input("是否已经注册?(yes/no)")
    if tips =='yes':
        while True:
            username = input("输入用户名:")
            password = input("输入密码:")
            # 读取文件时可能会出现找不到文件的异常,因此使用try except
            try:
                # 读取文件中的内容
                with open(path, 'rb') as stream:
                    # 读取多行保存到列表中,列表中保存的是二进制,字节
                    result = stream.readlines()
                    # print(result)
                    # 列表推导式,循环遍历列表,将字节解码为字符串放在一个新列表uesr_list
                    uesr_list = [i.decode() for i in result]
                    # print(uesr_list)
                    # 循环遍历列表,检查输入的用户名和密码是否在字符串中
                    for i in uesr_list:
                        info = i.split('   ')
                        # print(info)
                        if username == info[0] and password == info[2].rstrip('\r\n'):
                            print("登录成功")
                            operate(book_path,username)
                            break
                    else:
                        raise Exception("用户名或密码错误,请重新输入!")

            except Exception as err:
                print(err)
            # 没有异常时执行else语句
            else:
                break
    else:
        print("您还未注册,请先注册后再登录!")
        # 递归
        logon()

查询图书

def find_books(path):
    try:
        with open(path, 'r') as rstream:
            # readlines读到的内容是一个列表
            container = rstream.readlines()
            # 通过列表推导式得到新的列表,即每个元素去掉后面的换行符号
            new_container = [books_name.rstrip('\n') for books_name in container]
            for b_name in new_container:
                # 打印图书+《》
                print("《{}》".format(b_name))

    except Exception as err:
        print("错误原因:",err)

添加图书

def add_book(b_path,username):
    # 添加前首先判断是否是管理员
    permission(b_path, username)
    
  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值