精华内容
下载资源
问答
  • python图书管理系统
    2020-02-18 14:59:53

    python 图书管理系统

    # 示例代码
    
    books=[
       {"bookname":"红楼梦","numbers":2},
       {"bookname":"西游记","numbers":3},
       {"bookname":"三国演义","numbers":2},
       {"bookname":"水浒传","numbers":2},
       {"bookname":"龙王传说","numbers":2},
       {"bookname":"绝世唐门","numbers":3}
    ]
    students=[
       {"id":"101","password":"123","name":"张三","books":["红楼梦","龙王传说"]},
       {"id":"102","password":"123","name":"李四","books":["红楼梦","三国演义"]},
       {"id":"103","password":"123","name":"王五","books":["水浒传","西游记"]},
       {"id":"104","password":"123","name":"赵六","books":["红楼梦","水浒传"]},
       {"id":"105","password":"123","name":"小明","books":["三国演义","龙王传说"]},
    ]
    def id_book(id):
       for dict_stu in students:
          if dict_stu["id"]==id:
             return dict_stu["books"]      
    def lend_book(book):
       stu_books=id_book(user_name)
       if len(stu_books)==5:
          print("只能借5本")
          return
       for dict_book  in books:
          if book == dict_book["bookname"]:
             if book in stu_books:
                print("您已借过这本书")
                print(id_book(user_name))
             else:
                if dict_book["numbers"]==0:
                   print("这本书已借光")
                   print(dict_book)
                   return
                for dict_stu in students:
                   if dict_stu["id"]==user_name:
                      dict_stu["books"].append(book)
                      print(id_book(user_name))
                      dict_book["numbers"]-=1
                      print(dict_book)
             break
       else:
          print("没有这本书") 
    def repay_book(book):
       stu_books=id_book(user_name)
       if book in stu_books:
          stu_books.remove(book)
          for dict_book  in books:
             if book == dict_book["bookname"]:
                dict_book["numbers"]+=1
                print(dict_book)
          print(id_book(user_name))
       else:
          print("您没有这本书")
          print(id_book(user_name))
    def change_password():
       old_passwd=input("请输入原密码")
       new_passwd=input("请输入新密码")
       new_passwd1=input("请再次输入新密码")
       if old_passwd!=get_password(user_name):
          print("原密码错误")
          return
       elif new_passwd1!=new_passwd:
          print("两次新密码输入不一致")
          return
       elif len(new_passwd)<6:
          print("请输入长度大于6的新密码")
          return
       else:
          for dict_stu in students:
             if dict_stu["id"]==user_name:
                dict_stu["password"]=new_passwd
          print("修改成功")
    def success_login():
       while True:
          choice=input("1.借书 2.还书 3. 修改密码 4.退出")
          if choice=="1":
             book=input("请输入您要借的书名")
             lend_book(book)
          elif choice=="2":
             book=input("请输入你要还的书")
             repay_book(book)
          elif choice=="3":
             change_password()
          elif choice=="4":
             print("退出个人图书管理系统成功")
             print("已进入登录界面")
             login()
             break
    def get_password(id):
       for dict_stu in students:
          if dict_stu["id"]==id:
             return dict_stu["password"]
    def login():
       global n,user_name,pass_word
       user_name=input("请输入您的id")
       pass_word=input("请输入你的密码")
       if n>2:
          print("您的账号已锁定")
          return
       if user_name=="退出":
          return
       if pass_word==get_password(user_name):
          print("登录成功")
          success_login()
       else:
          print("登录失败请重新登录")
          n+=1
          login()
    n=0
    user_name=""
    pass_word=""
    login()
    
    
    
    更多相关内容
  • python图书管理系统

    2020-12-23 18:00:25
    本文实例为大家分享了python图书管理系统的具体代码,供大家参考,具体内容如下 实现语言:python 图形框架:DTK+2.0 数据库框架:SQLite 3.0 本程序需要以下部件运行: Python2.5.0、GTK+2.16、Pygtk 2.16、...
  • Python简单实现图书管理系统 一、需求分析: 1、某单位图书馆要开发一个小型图书管理系统,主要实现图书管理、读者管理、借阅管理、信息查询、系统维护等功能。具体描述如下: 1)图书管理:主要实现图书信息的添加...
  • Python图书管理系统

    2018-07-04 22:53:05
    一个基于Python图书管理系统, 主要实现书籍的增删改查。
  • 本文实例为大家分享了python实现图书管理系统的具体代码,供大家参考,具体内容如下 import mysql.connector import sys, os import time import datetime from tkinter import * from tkinter.messagebox import *...
  • 人生苦短,我用Python,咱们今天就来分享一个用Python语言开发的基于Django框架的图书管理系统吧。项目前台和后台界面模板都是自己编写,前台采用Bootstrap框架UI,后台EasyUI框架UI,没有采用Django自动生成的那个...
  • 设计一个GUI界面的系统,模拟图书管理,一个面向学生和学校管理员的系统,图书信息以txt文件存在本地。 管理员:查询图书 增加图书 删除图书 学生:借阅图书 归还图书 任何一个操作都会将所更新的图书...
  • 基于Django的图书管理系统 0 1 需求说明 1 2 设计架构 1 3 数据模型 1 3.1 用户模型 1 3.2 书籍模型 1 3.3 图片模型 2 4 关键代码说明 3 4.1 路由部分 3 4.2 重设密码部分 3 4.3 添加书籍部分 4 4.4 书籍列表部分 6 ...
  • 入门级别的图书管理系统,有数据库文件,有简单界面,可以实现图书信息的增加、修改、删除和查看,很简单,有两个主要界面 入门级别的图书管理系统,有数据库文件,有简单界面,可以实现图书信息的增加、修改、...
  • python实现一个简单的图书管理系统 ,供大家参考,具体内容如下 1、工具:PyCharm3.6 社区版 我创建了一个工程叫fairy,把解释器换成Pytnon3.6 创建一个pytnon file:图书管理系统.py 2、实现简单界面如下: ...
  • python制作图书管理系统,包含查找、增加、借阅和归还功能。
  • 利用python的列表数据结构模拟数据库,实现了控制台界面的图书管理系统的后台代码。 功能都比较初级,但基本实现了 学生信息管理(CRUD),图书信息管理(CRUD)及借阅信息管理(CRUD) 同时也具有如 : 输入学号,...
  • 基于python图书管理系统源代码,对于需要完成图书管理系统作业的同学来说是一个福利哦,欢迎大家欣赏。~~~
  • 可以直接使用的工程文件,是一个入门级别的python系统工程,由于做的相对简单适合入门的新手做参考使用,请各位参考,使用方法已经上传.
  • 基于python设计的图书管理系统源码文件.可以做为你的学习设计参考。
  • 主要介绍了基于python图书管理系统设计实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • # 图书管理系统说明V2.0 ### 项目介绍及再版说明(2016-01-24) 其实一开始做这个小项目在2014年的9到11月,当时是作为加入Pureweber开发组的大作业完成的。虽然用了两个月的时间,但是做出的东西还是有很多的...
  • Python图书管理系统(一)

    千次阅读 多人点赞 2022-04-07 15:35:30
    最近在写一个项目——图书管理系统 在完成这个项目的道路上我写了2个基础的图书管理系统。 ①用IO完成数据存储的图书管理系统 ②用MySQL完成数据存储的图书管理系统    今天先来更新第一个用IO操作的图书管理系统...

    最近在写一个项目——图书管理系统
    在完成这个项目的道路上我写了2个基础的图书管理系统。

    ①用IO完成数据存储的图书管理系统

    ②用MySQL完成数据存储的图书管理系统
      

    今天先来更新第一个用IO操作的图书管理系统!!!
    在这里插入图片描述

    话不多说,上代码!

    import os
    
    
    # 新增图书信息
    def Add():
        id_book = int(input('请输入编号:'))
        name_book = input('请输入书名:')
        author_book = input('请输入作者:')
        type_book = input('请输入种类:')
        num_book = int(input('请输入数量:'))
        surplus_book = int(input('请输入剩余:'))
        book_information = {'编号': id_book, '书名': name_book, '作者': author_book, '种类': type_book, '数量': num_book,
                            '剩余': surplus_book}
        with open('图书信息.txt', 'a', encoding='utf-8') as f:  # 图书信息以字典形式存储,增加信息就用a追加到文件中
            if os.path.getsize('图书信息.txt') != 0:
                f.write('\n')	# 换行\n保证数据在文件中按行存储,这样在查询时用f.readlines()才能正确查询
            f.write(str(book_information))
    
    
    # 删除图书信息
    def Delete():
        del_num = int(input('请输入你要删除图书的编号:'))
        with open('图书信息.txt', 'r', encoding='utf-8') as f:  # 把文件信息全部提取出来
            book_inf = f.readlines()
        for i in range(len(book_inf)):  # 循环查找想要编号的那一项
            if eval(book_inf[i])['编号'] == del_num:
                book_inf.pop(i)  # 找到后把那一项删掉
                break
        with open('图书信息.txt', 'w', encoding='utf-8') as f:  # 把删掉一项信息后的book_inf覆盖存储到文件中
            for temp in book_inf:
                f.write(str(temp))  # 存储必须以str类型,否则就报错
    
    
    # 修改图书信息
    def Alter():
        alt_num = int(input('请输入你要修改图书的编号:'))
        with open('图书信息.txt', 'r', encoding='utf-8') as f:  # 取所有图书信息
            books_inf = f.readlines()
        for temp in books_inf:  # 循环遍历出哪一项是想要修改的
            b = eval(temp)
            if b['编号'] == alt_num:
                print(b)  # 列出所选编号的图书信息,好看着修改
                books_inf.remove(temp)
                b['编号'] = int(input('请输入编号:'))
                b['书名'] = input('请输入书名:')
                b['作者'] = input('请输入作者:')
                b['种类'] = input('请输入种类:')
                b['数量'] = int(input('请输入数量:'))
                b['剩余'] = int(input('请输入剩余:'))
                break
        with open('图书信息.txt', 'w', encoding='utf-8') as f:
            f.write(str(b) + '\n')
        with open('图书信息.txt', 'a', encoding='utf-8') as f:
            for temp in books_inf:
                f.write(str(temp))
    
    
    # 查询图书信息
    def Search():
        sea_num = int(input('请输入你要查找图书的编号:'))
        with open('图书信息.txt', 'r', encoding='utf-8') as f:  # 取所有图书信息
            books_inf = f.readlines()
        for temp in books_inf:  # 循环遍历出哪一项是想要查找的
            b = eval(temp)
            if b['编号'] == sea_num:
                print('编号'.center(5, ' '), '书名'.center(15, ' '), '作者'.center(15, ' '), '种类'.center(15, ' '),
                      '数量'.center(5, ' '),
                      '剩余'.center(5, ' '))
                format_data = '{:^5}\t{:^15}\t{:^10}\t{:^10}\t{:^5}\t{:^5}'
                print(format_data.format(b.get('编号'), b.get('书名'), b.get('作者'), b.get('种类'), b.get('数量'), b.get('剩余')))
    
    
    # 展示所有图书信息
    def Show():
        with open('图书信息.txt', 'r', encoding='utf-8') as f:  # 取所有图书信息
            books_inf = f.readlines()
        print('编号'.center(5, ' '), '书名'.center(15, ' '), '作者'.center(15, ' '), '种类'.center(15, ' '), '数量'.center(5, ' '),
              '剩余'.center(5, ' '))
        format_data = '{:^5}\t{:^15}\t{:^10}\t{:^10}\t{:^5}\t{:^5}'
        for temp in books_inf:
            b = eval(temp)
            print(format_data.format(b.get('编号'), b.get('书名'), b.get('作者'), b.get('种类'), b.get('数量'), b.get('剩余')))
    
    
    # 选择菜单
    def Menu():
        print('-----------------------------功能菜单-----------------------------')
        print('\t\t\t\t1.新增图书信息')
        print('\t\t\t\t2.删除图书信息')
        print('\t\t\t\t3.修改图书信息')
        print('\t\t\t\t4.查询图书信息')
        print('\t\t\t\t5.展示所有图书信息')
        print('\t\t\t\t0.退出')
        print('----------------------------------------------------------------')
    
    
    # 主程序
    def main():
        print('=========================资料室图书管理系统=========================')
        while True:
            Menu()
            select = eval(input('请选择功能:'))
            if select == 1:
                Add()
                print('新增信息完成!')
                print('\n')
            elif select == 2:
                Delete()
                print('删除信息完成!')
                print('\n')
            elif select == 3:
                Alter()
                print('修改信息完成!')
                print('\n')
            elif select == 4:
                Search()
                print('\n')
            elif select == 5:
                Show()
                print('\n')
            elif select == 0:
                print('谢谢使用!')
                break
            else:
                print("输入错误!请重新输入!")
    
    
    main()
    

    如果Python基础打得牢,写这些不成问题。如果你对以上代码有疑问,可以在评论区问我,我一定会给你解答!
      
      
      
    效果图:
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    这些就是函数的基本操作,是不是很简单呀!
      
      
      

    在这里插入图片描述
    这些就是在文件里存储的图书数据👆
      

    这个代码可以直接搬运,直接运行!!!

    在这里插入图片描述

    展开全文
  • 人生苦短,我用Python,咱们今天就来分享一个用Python语言开发的基于Django框架的图书管理系统吧。项目前台和后台界面模板都是自己编写,前台采用Bootstrap框架UI,后台EasyUI框架UI,没有采用Django自动生成的那个...
  • Python图书管理系统(终章)

    千次阅读 多人点赞 2022-05-14 17:23:25
    上次写了用MySQL完成数据存储的图书管理系统, 这次我将把各个模块划分为系统的各个功能,通过flask框架与前端进行数据交互。做成一个小型的完整网页项目。       总的项目布局    项目布局很重要,什么类型的...

      
      
      

    前言

      

    上次写了用MySQL完成数据存储的图书管理系统,
    这次我将把各个模块划分为系统的各个功能,通过flask框架与前端进行数据交互。做成一个小型的完整网页项目。

      
      
      

    总的项目布局

      

    项目布局很重要,什么类型的文件就放在对应类型的文件夹下。

    在这里插入图片描述
    blueprints :里放各个功能模块。

    static :里面放css用的图片等美化网页的文件。(这个项目只是练手,前端就没细搞,所以我这个文件夹里是空的)

    templates:里面放前端代码。

    app.py:作为一个主文件运行,用来启动网站。

    config.py:其实app.py下还应有个config.py作为配置文件。设置这样一个专门放项目配置的配置文件,就不用在每个项目中写几十甚至上百条配置语句了,配置时只需调用此文件即可。(这个项目很小,几乎用不到配置,所以没弄这个)

      
      

    数据库层面:

    在这里插入图片描述

    这些是项目中用来存储数据的表。

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

      
      
      

    效果展示

      
    1.未登录时

    有个提示登陆的弹窗,点确定就进入了
    在这里插入图片描述
    在这里插入图片描述
    没有账号的需要注册
    在这里插入图片描述
    在这里插入图片描述
    注册完成后就可以登录了
      

    2.登录

    若用普通学号(2028124001)登录,则功能较少
    在这里插入图片描述
    PS:项目较小,普通人登录的功能没怎么弄,就只能登录、注销和查看图书信息,更多功能都在管理员登录那。

    注销,换个账号登录
    在这里插入图片描述
    就又回到了刚刚没登陆前的页面

    这次用管理员学号(2028124078)登录
    在这里插入图片描述
      
    3.功能操作

    管理员可以操作三个表:图书列表、已借出的书、借阅人信息,并可以对这三个表的数据进行“增删查”。(暂时没有“改”,等会了Ajax再加上)

    具体操作就不一一展示了。

      
      
      

    全部代码

      

    话不多说,上代码!!!
      

    blueprints里:

    AllBooks.py

    import pymysql
    from flask import Blueprint, render_template, request, redirect, url_for
    bp = Blueprint('AllBooks', __name__, url_prefix='/user')
    
    
    @bp.route('/AllBooks', methods=['GET', 'POST'])
    def AllBooks():
        db = pymysql.connect(host='localhost', user="root", passwd='MQ20201008', database='final_assignment')
        cursor = db.cursor()
        sql = 'select * from allbooks'
        try:
            cursor.execute(sql)
            f = cursor.fetchall()
            context = {
                'books': f,
            }
    
        except:
            db.rollback()
    
        db.close()
        return render_template('AllBooks.html', **context)
    
    
    @bp.route('/delete', methods=['GET', 'POST'])
    def delete():
        uid = request.args.get('uid')
        db = pymysql.connect(host='localhost', user="root", passwd='MQ20201008', database='final_assignment')
        cursor = db.cursor()
        sql = 'delete from allbooks where 编号 = "%d"'
        try:
            cursor.execute(sql % int(uid))      # 要转换成int型,否则没功能
            db.commit()
        except:
            db.rollback()
        db.close()
        return redirect(url_for('AllBooks.AllBooks'))
    
    
    
    @bp.route('/search', methods=['GET', 'POST'])
    def search():
        data = request.args.get('search')
        db = pymysql.connect(host='localhost', user="root", passwd='MQ20201008', database='final_assignment')  # 打开数据库连接
        cursor = db.cursor()  # 使用cursor()方法获取操作游标
        sql = 'select * from allbooks where 编号 = "%d"'
        try:
            cursor.execute(sql % int(data))
            f = cursor.fetchall()
            context = {
                'books': f
                }
        except:
            db.rollback()
    
        db.close()
        return render_template('AllBooks.html', **context)
    
    
    @bp.route('/add', methods=['GET', 'POST'])
    def add():
        if request.method == 'GET':
            return render_template('addall.html')
        else:
            data = request.form
            db = pymysql.connect(host='localhost', user="root", passwd='MQ20201008', database='final_assignment')  # 打开数据库连接
            cursor = db.cursor()  # 使用cursor()方法获取操作游标
            sql = 'insert into allbooks(书名,作者,种类,数量,剩余) values("%s", "%s", "%s", "%d", "%d")'  # SQL 插入语句
            try:
                cursor.execute(sql % (data['bookname'], data['writer'], data['typ'], int(data['qu']), int(data['sur'])))  # 执行sql语句
                db.commit()
            except:
                db.rollback()  # 发生错误时回滚
            db.close()  # 关闭数据库连接
    
        return redirect(url_for('AllBooks.AllBooks'))
    

      
    BooksOfLent

    import pymysql
    from flask import Blueprint, render_template, request, url_for, redirect
    bp = Blueprint('BooksOfLent', __name__, url_prefix='/lent')
    
    
    @bp.route('/books', methods=['GET', 'POST'])
    def lent():
        db = pymysql.connect(host='localhost', user="root", passwd='MQ20201008', database='final_assignment')
        cursor = db.cursor()
        sql = 'select * from books_of_lent'
        try:
            cursor.execute(sql)
            f = cursor.fetchall()
            context = {
                'books': f,
            }
        except:
            db.rollback()
        db.close()
        return render_template('Books Of Lent.html', **context)
    
    
    
    @bp.route('/delete', methods=['GET', 'POST'])
    def delete():
        uid = request.args.get('uid')
        db = pymysql.connect(host='localhost', user="root", passwd='MQ20201008', database='final_assignment')
        cursor = db.cursor()
        sql = 'delete from books_of_lent where 编号 = "%d"'
        try:
            cursor.execute(sql % int(uid))      # 要转换成int型,否则没功能
            db.commit()
        except:
            db.rollback()
        db.close()
        return redirect(url_for('BooksOfLent.lent'))
    
    
    
    @bp.route('/search', methods=['GET', 'POST'])
    def search():
        data = request.args.get('search')
        db = pymysql.connect(host='localhost', user="root", passwd='MQ20201008', database='final_assignment')  # 打开数据库连接
        cursor = db.cursor()  # 使用cursor()方法获取操作游标
        sql = 'select * from books_of_lent where 编号 = "%d"'
        try:
            cursor.execute(sql % int(data))
            f = cursor.fetchall()
            context = {
                'books': f
                }
        except:
            db.rollback()
    
        db.close()
        return render_template('Books Of Lent.html', **context)
    
    
    @bp.route('/add', methods=['GET', 'POST'])
    def add():
        if request.method == 'GET':
            return render_template('addlent.html')
        else:
            data = request.form
            db = pymysql.connect(host='localhost', user="root", passwd='MQ20201008', database='final_assignment')  # 打开数据库连接
            cursor = db.cursor()  # 使用cursor()方法获取操作游标
            sql = 'insert into books_of_lent(编号,书名,借阅人学号,借出时间,归还时间) values("%d","%s", "%s", "%s", "%s")'
            try:
                cursor.execute(sql % (int(data['num']), data['bookname'], data['stunum'], data['lenttime'], (data['returntime'])))  # 执行sql语句
                db.commit()
            except:
                db.rollback()  # 发生错误时回滚
            db.close()  # 关闭数据库连接
    
        return redirect(url_for('BooksOfLent.lent'))
    

      
    borrower

    import pymysql
    from flask import Blueprint, render_template, request
    
    bp = Blueprint('borrower', __name__, url_prefix='/user')
    
    
    @bp.route('/borrower')
    def AllBooks():
        db = pymysql.connect(host='localhost', user="root", passwd='MQ20201008', database='final_assignment')
        cursor = db.cursor()
        sql = 'select * from allbooks'
        try:
            cursor.execute(sql)
            f = cursor.fetchall()
            context = {
                'books': f,
            }
    
        except:
            db.rollback()
    
        db.close()
        return render_template('borrower.html', **context)
    
    
    
    

      
    BorrowerInformation

    import pymysql
    from flask import Blueprint, render_template, request, url_for, redirect
    bp = Blueprint('BorrowerInformation', __name__, url_prefix='/Borrower')
    
    
    @bp.route('/Information', methods=['GET', 'POST'])
    def borrower():
        db = pymysql.connect(host='localhost', user="root", passwd='MQ20201008', database='final_assignment')
        cursor = db.cursor()
        sql = 'select * from borrower_information'
        try:
            cursor.execute(sql)
            f = cursor.fetchall()
            context = {
                'inf': f
            }
        except:
            db.rollback()
        db.close()
        return render_template('Borrower Information.html', **context)
    
    
    
    @bp.route('/delete', methods=['GET', 'POST'])
    def delete():
        uid = request.args.get('uid')
        db = pymysql.connect(host='localhost', user="root", passwd='MQ20201008', database='final_assignment')
        cursor = db.cursor()
        sql = 'delete from borrower_information where 学号 = "%s"'
        try:
            cursor.execute(sql % str(uid))
            db.commit()
        except:
            db.rollback()
        db.close()
        return redirect(url_for('BorrowerInformation.borrower'))
    
    
    
    @bp.route('/search', methods=['GET', 'POST'])
    def search():
        data = request.args.get('search')
        db = pymysql.connect(host='localhost', user="root", passwd='MQ20201008', database='final_assignment')  # 打开数据库连接
        cursor = db.cursor()  # 使用cursor()方法获取操作游标
        sql = 'select * from borrower_information where 学号 = "%s"'
        # try:
        cursor.execute(sql % data)
        f = cursor.fetchall()
        context = {
            'inf': f
            }
        # except:
        #     db.rollback()
    
        db.close()
        return render_template('Borrower Information.html', **context)
    
    
    @bp.route('/add', methods=['GET', 'POST'])
    def add():
        if request.method == 'GET':
            return render_template('addinf.html')
        else:
            data = request.form
            db = pymysql.connect(host='localhost', user="root", passwd='MQ20201008', database='final_assignment')  # 打开数据库连接
            cursor = db.cursor()  # 使用cursor()方法获取操作游标
            sql = 'insert into borrower_information(学号,姓名) values("%s", "%s")'  # SQL 插入语句
            try:
                cursor.execute(sql % (data['num'], data['name']))  # 执行sql语句
                db.commit()
            except:
                db.rollback()  # 发生错误时回滚
            db.close()  # 关闭数据库连接
    
        return redirect(url_for('BorrowerInformation.borrower'))
    
    

      
    register

    import pymysql
    from flask import Blueprint, render_template, request, redirect, url_for
    
    bp = Blueprint('register', __name__, url_prefix='/register')
    
    
    @bp.route('/people', methods=['GET', 'POST'])
    def register():
        if request.method == 'GET':
            return render_template('register.html')
        else:
            data = request.form
            db = pymysql.connect(host='localhost', user="root", passwd='MQ20201008', database='final_assignment')  # 打开数据库连接
            cursor = db.cursor()  # 使用cursor()方法获取操作游标
            sql = 'insert into borrower_information(学号,姓名) values("%s", "%s")'  # SQL 插入语句
            try:
                cursor.execute(sql % (data['password'], data['username']))  # 执行sql语句
                db.commit()
            except:
                db.rollback()  # 发生错误时回滚
            db.close()  # 关闭数据库连接
            return redirect(url_for('user.index'))
    

      
    user

    # home page and login
    import pymysql
    from flask import Blueprint, render_template, request, redirect, url_for
    
    bp = Blueprint('user', __name__, url_prefix='/')
    
    
    @bp.route('/', methods=['GET', 'POST'])
    def index():
        if request.method == 'GET':
            db = pymysql.connect(host='localhost', user="root", passwd='MQ20201008', database='final_assignment')
            cursor = db.cursor()
            sql = 'select * from allbooks'
            try:
                cursor.execute(sql)
                f = cursor.fetchall()
                context = {
                    'books': f,
                }
    
            except:
                db.rollback()
    
            db.close()
            return render_template('AllBooks(Before login).html', **context)
        else:
            data = request.form
            db = pymysql.connect(host='localhost', user="root", passwd='MQ20201008', database='final_assignment')
            cursor = db.cursor()
            sql = 'select * from borrower_information where 学号 = "%s"'
            try:
                cursor.execute(sql % data['password'])
                f = cursor.fetchall()
                if f:
                    return redirect(url_for('borrower.AllBooks'))
            except:
                db.rollback()
    
            sql = 'select * from admin where 学号 = "%s"'
            try:
                cursor.execute(sql % data['password'])
                f = cursor.fetchall()
                if f:
                    return redirect(url_for('AllBooks.AllBooks'))
            except:
                db.rollback()
    
            db.close()
    

      
      
    templates里:

    addall.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>注册页面</title>
        <style>
            *{
                margin: 0px;
                padding: 0px;
                box-sizing: border-box;
            }
            body{
                background: url("../demo_html/file/17.jpg" )  no-repeat ;
                background-size: 1920px 1200px;
            }
            .rg_layout{
                width: 800px;
                height: 500px;
                border: 5px solid #EEEEEE;
                background-color: #FBFBEF;
                margin-left: 100px;
                margin-top: 180px;
            }
            .rg_left{
                /*border: 1px red solid;*/
                float: left;
                margin: 15px;
            }
            .rg_center{
                /*border: 1px red solid;*/
                float: left;
                margin-left: 60px;
                margin-top: 40px;
    
            }
            .rg_right{
                /*border: 1px red solid;*/
                float: right;
                margin: 10px;
            }
    
            .rg_left > p:first-child{
                color: #FFD026;
                font-size: 18px;
            }
            .rg_left >p:last-child{
                color: #A6A6A6;
                font-size: 16px;
            }
            .rg_right >p:first-child{
                font-size: 10px;
            }
            .rg_right p a {
                color: pink;
            }
    
            .td_left{
                width: 100px;
                height: 40px;
                text-align: right;
            }
            .td_right{
                padding-left: 20px;
            }
            #username,#password,#email,#name,#phone,#abirthday,#checkcod   {
                width: 180px;
                height: 25px;
                border: 1px solid #A6A6A6 ;
                border-radius: 5px;
                padding-left: 10px;
            }
            #checkcod{
                width: 90px;
            }
            #img_check{
                vertical-align: middle;
            }
            #btn_sub{
                width: 100px;
                height: 25px;
                background-color: #FFD026;
                border: solid #FFD026 1px;
                margin-left: 40px;
                margin-top: 20px;
            }
    
    
        </style>
    
    </head>
    <body>
    <!--    最外边的-->
        <div class="rg_layout">
            <!--    最左边的-->
            <div class="rg_left">
                <p>新增</p>
                <p>ADD</p>
            </div>
    
    
    <!--中间的-->
            <div class="rg_center">
                <div class="rg_from">
                    <form method="post" >
                        <table >
    
                            <tr>
                                <td class="td_left"><label>书名</label> </td>
                                <td class="td_right"> <input type="text" name="bookname" id="bookname" placeholder="请输入书名"> </td>
                            </tr>
                            <tr>
                                <td class="td_left"> <label>作者</label> </td>
                                <td class="td_right"> <input type="text" name="writer" id="writer" placeholder="请输入作者"> </td>
                            </tr>
                            <tr>
                                <td class="td_left"> <label>种类</label> </td>
                                <td class="td_right"> <input type="text" name="typ" id="typ" placeholder="请输入种类"> </td>
                            </tr>
                            <tr>
                                <td class="td_left"> <label>数量</label> </td>
                                <td class="td_right"> <input type="text" name="qu" id="qu" placeholder="请输入数量"> </td>
                            </tr>
                            <tr>
                                <td class="td_left"> <label>剩余</label> </td>
                                <td class="td_right"> <input type="text" name="sur" id="sur" placeholder="请输入剩余"> </td>
                            </tr>
                            <tr>
                                <td colspan="2" align="center"> <input type="submit" id="btn_sub" value="新增" > </td>
                            </tr>
                        </table>
                    </form>
    
    
                </div>
    
            </div>
    
    
        </div>
    
    
    </body>
    </html>
    

      
    addinf.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>注册页面</title>
        <style>
            *{
                margin: 0px;
                padding: 0px;
                box-sizing: border-box;
            }
            body{
                background: url("../demo_html/file/17.jpg" )  no-repeat ;
                background-size: 1920px 1200px;
            }
            .rg_layout{
                width: 800px;
                height: 500px;
                border: 5px solid #EEEEEE;
                background-color: #FBFBEF;
                margin-left: 100px;
                margin-top: 180px;
            }
            .rg_left{
                /*border: 1px red solid;*/
                float: left;
                margin: 15px;
            }
            .rg_center{
                /*border: 1px red solid;*/
                float: left;
                margin-left: 60px;
                margin-top: 40px;
    
            }
            .rg_right{
                /*border: 1px red solid;*/
                float: right;
                margin: 10px;
            }
    
            .rg_left > p:first-child{
                color: #FFD026;
                font-size: 18px;
            }
            .rg_left >p:last-child{
                color: #A6A6A6;
                font-size: 16px;
            }
            .rg_right >p:first-child{
                font-size: 10px;
            }
            .rg_right p a {
                color: pink;
            }
    
            .td_left{
                width: 100px;
                height: 40px;
                text-align: right;
            }
            .td_right{
                padding-left: 20px;
            }
            #username,#password,#email,#name,#phone,#abirthday,#checkcod   {
                width: 180px;
                height: 25px;
                border: 1px solid #A6A6A6 ;
                border-radius: 5px;
                padding-left: 10px;
            }
            #checkcod{
                width: 90px;
            }
            #img_check{
                vertical-align: middle;
            }
            #btn_sub{
                width: 100px;
                height: 25px;
                background-color: #FFD026;
                border: solid #FFD026 1px;
                margin-left: 40px;
                margin-top: 20px;
            }
    
    
        </style>
    
    </head>
    <body>
    <!--    最外边的-->
        <div class="rg_layout">
            <!--    最左边的-->
            <div class="rg_left">
                <p>新增</p>
                <p>ADD</p>
            </div>
    
    
    <!--中间的-->
            <div class="rg_center">
                <div class="rg_from">
                    <form method="post" >
                        <table >
    
                            <tr>
                                <td class="td_left"><label>学号</label> </td>
                                <td class="td_right"> <input type="text" name="num" id="num" placeholder="请输入学号"> </td>
                            </tr>
                            <tr>
                                <td class="td_left"> <label>姓名</label> </td>
                                <td class="td_right"> <input type="text" name="name" id="name" placeholder="请输入姓名"> </td>
                            </tr>
    
                            <tr>
                                <td colspan="2" align="center"> <input type="submit" id="btn_sub" value="新增" > </td>
                            </tr>
                        </table>
                    </form>
    
    
                </div>
    
            </div>
    
    
        </div>
    
    
    </body>
    </html>
    

      
    addlent.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>注册页面</title>
        <style>
            *{
                margin: 0px;
                padding: 0px;
                box-sizing: border-box;
            }
            body{
                background: url("../demo_html/file/17.jpg" )  no-repeat ;
                background-size: 1920px 1200px;
            }
            .rg_layout{
                width: 800px;
                height: 500px;
                border: 5px solid #EEEEEE;
                background-color: #FBFBEF;
                margin-left: 100px;
                margin-top: 180px;
            }
            .rg_left{
                /*border: 1px red solid;*/
                float: left;
                margin: 15px;
            }
            .rg_center{
                /*border: 1px red solid;*/
                float: left;
                margin-left: 60px;
                margin-top: 40px;
    
            }
            .rg_right{
                /*border: 1px red solid;*/
                float: right;
                margin: 10px;
            }
    
            .rg_left > p:first-child{
                color: #FFD026;
                font-size: 18px;
            }
            .rg_left >p:last-child{
                color: #A6A6A6;
                font-size: 16px;
            }
            .rg_right >p:first-child{
                font-size: 10px;
            }
            .rg_right p a {
                color: pink;
            }
    
            .td_left{
                width: 100px;
                height: 40px;
                text-align: right;
            }
            .td_right{
                padding-left: 20px;
            }
            #username,#password,#email,#name,#phone,#abirthday,#checkcod   {
                width: 180px;
                height: 25px;
                border: 1px solid #A6A6A6 ;
                border-radius: 5px;
                padding-left: 10px;
            }
            #checkcod{
                width: 90px;
            }
            #img_check{
                vertical-align: middle;
            }
            #btn_sub{
                width: 100px;
                height: 25px;
                background-color: #FFD026;
                border: solid #FFD026 1px;
                margin-left: 40px;
                margin-top: 20px;
            }
    
    
        </style>
    
    </head>
    <body>
    <!--    最外边的-->
        <div class="rg_layout">
            <!--    最左边的-->
            <div class="rg_left">
                <p>新增</p>
                <p>ADD</p>
            </div>
    
    
    <!--中间的-->
            <div class="rg_center">
                <div class="rg_from">
                    <form method="post" >
                        <table >
                            <tr>
                                <td class="td_left"><label>编号</label> </td>
                                <td class="td_right"> <input type="text" name="num" id="num" placeholder="请输入编号"> </td>
                            </tr>
    
                            <tr>
                                <td class="td_left"><label>书名</label> </td>
                                <td class="td_right"> <input type="text" name="bookname" id="bookname" placeholder="请输入书名"> </td>
                            </tr>
                            <tr>
                                <td class="td_left"> <label>学号</label> </td>
                                <td class="td_right"> <input type="text" name="stunum" id="stunum" placeholder="请输入借阅人学号"> </td>
                            </tr>
                            <tr>
                                <td class="td_left"> <label>借出时间</label> </td>
                                <td class="td_right"> <input type="text" name="lenttime" id="lenttime" placeholder="请输入借时 XXXX-XX-XX"> </td>
                            </tr>
                            <tr>
                                <td class="td_left"> <label>归还时间</label> </td>
                                <td class="td_right"> <input type="text" name="returntime" id="returntime" placeholder="请输入还时 XXXX-XX-XX"> </td>
                            </tr>
    
                            <tr>
                                <td colspan="2" align="center"> <input type="submit" id="btn_sub" value="新增" > </td>
                            </tr>
                        </table>
                    </form>
    
    
                </div>
    
            </div>
    
    
        </div>
    
    
    </body>
    </html>
    

      
    AllBooks(Before login).html

    <!--一打开就是这个页面,注册完跳回这个页面,普通用户登录也跳转回这个页面-->
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>图书列表(登录前)</title>
        <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script>
        <link href="https://cdn.bootcss.com/twitter-bootstrap/3.4.1/css/bootstrap.min.css" rel="stylesheet">
        <script src="https://cdn.bootcss.com/twitter-bootstrap/3.4.1/js/bootstrap.min.js"></script>
        <script>alert("请先登录")</script>
    </head>
    <body>
    <!--图书馆管理系统页面-->
    <nav class="navbar navbar-inverse">
      <div class="container-fluid">
        <!-- Brand and toggle get grouped for better mobile display -->
        <div class="navbar-header">
          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="navbar-brand" href="#">资料室图书管理系统</a>
        </div>
    
        <!-- Collect the nav links, forms, and other content for toggling -->
        <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
          <ul class="nav navbar-nav">
            <li class="active"><a href="{{ url_for('register.register') }}"> 注册 <span class="sr-only">(current)</span></a></li>
          </ul>
          <form class="navbar-form navbar-left" method="post">
            <div class="form-group">
              <input type="text" class="form-control" placeholder="学号" name="password">
            </div>
            <button type="submit" class="btn btn-default">登录</button>
          </form>
          <ul class="nav navbar-nav navbar-right">
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">更多操作 <span class="caret"></span></a>
              <ul class="dropdown-menu">
                <li><a href="#">注销</a></li>
              </ul>
            </li>
          </ul>
        </div>
      </div>
    </nav>
    <div class="container">
        <div class="row">
            <div class="col-md-2">
                <div class="list-group">
              <a href="#" class="list-group-item active">
                图书列表
              </a>
    </div>
            </div>
            <div class="col-md-10">
                <div class="panel panel-primary">
                  <div class="panel-heading clearfix">
                    <h3 class="panel-title">图书馆管理系统<span class="glyphicon glyphicon-leaf pull-right"></span></h3>
                  </div>
                  <div class="panel-body">
                      <form class="form-inline pull-right">
                          <div class="form-group">
    
                            <div class="input-group">
    
                              <input type="text" class="form-control" id="exampleInputAmount" placeholder="编号">
    
                            </div>
                          </div>
                          <button type="submit" class="btn btn-primary">搜索</button>
                        </form>
                      <table class="table table-hover table-striped table-bordered" style="margin-top: 10px">
                          <thead>
                              <tr>
                                  <th>编号</th>
                                  <th>书名</th>
                                  <th>作者</th>
                                  <th>种类</th>
                                  <th>数量</th>
                                  <th>剩余</th>
                              </tr>
                          </thead>
                          <tbody>
    
                          {% for book in books %}
                              <tr>
                              <td>{{ book[0] }}</td>
                              <td>{{ book[1] }}</td>
                              <td>{{ book[2] }}</td>
                              <td>{{ book[3] }}</td>
                              <td>{{ book[4] }}</td>
                              <td>{{ book[5] }}</td>
                          </tr>
                          {% endfor %}
    
    
                          </tbody>
                      </table>
    
                  </div>
                    </div>
            </div>
    
    
              </div>
    </div>
    </body>
    </html>
    

      
    AllBooks.html

    <!--图书列表(管理员)-->
    <!--管理员登陆后跳到此页面-->
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>图书列表(管理员)</title>
        <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script>
        <link href="https://cdn.bootcss.com/twitter-bootstrap/3.4.1/css/bootstrap.min.css" rel="stylesheet">
        <script src="https://cdn.bootcss.com/twitter-bootstrap/3.4.1/js/bootstrap.min.js"></script>
    </head>
    <body>
    <!--图书馆管理系统页面-->
    <nav class="navbar navbar-inverse">
      <div class="container-fluid">
        <!-- Brand and toggle get grouped for better mobile display -->
        <div class="navbar-header">
          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="navbar-brand" href="#">资料室图书管理系统</a>
        </div>
    
        <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
          <ul class="nav navbar-nav">
            <li class="active"><a href="{{ url_for('register.register') }}"> 注册 <span class="sr-only">(current)</span></a></li>
    
          </ul>
          <form class="navbar-form navbar-left">
            <div class="form-group">
              <input type="text" class="form-control" placeholder="学号">
            </div>
            <button type="submit" class="btn btn-default">登录</button>
          </form>
          <ul class="nav navbar-nav navbar-right">
    <!--        <li><a href="#">godlover</a></li>-->
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">更多操作 <span class="caret"></span></a>
              <ul class="dropdown-menu">
    
                <li><a href="{{ url_for('user.index') }}">注销</a></li>
              </ul>
            </li>
          </ul>
        </div>
      </div>
    </nav>
    <div class="container">
        <div class="row">
            <div class="col-md-2">
                <div class="list-group">
              <a href="#" class="list-group-item active">
                图书列表
              </a>
              <a href="{{url_for('BooksOfLent.lent')}}" class="list-group-item">已借出的书</a>
              <a href="{{url_for('BorrowerInformation.borrower')}}" class="list-group-item">借阅人信息</a>
    
    </div>
            </div>
            <div class="col-md-10">
                <div class="panel panel-primary">
                  <div class="panel-heading clearfix">
                    <h3 class="panel-title">图书馆管理系统<span class="glyphicon glyphicon-leaf pull-right"></span></h3>
                  </div>
                  <div class="panel-body">
                    <a href="{{ url_for('AllBooks.add') }}" class="btn btn-success">新增</a>
                      <form class="form-inline pull-right" method="GET" action="{{ url_for('AllBooks.search') }}">
                          <div class="form-group">
    
                            <div class="input-group">
    
                              <input type="text" class="form-control" name="search" id="search" placeholder="编号">
    
                            </div>
                          </div>
                          <button type="submit" class="btn btn-primary">搜索</button>
                        </form>
                      <table class="table table-hover table-striped table-bordered" style="margin-top: 10px">
                          <thead>
                              <tr>
                                  <th>编号</th>
                                  <th>书名</th>
                                  <th>作者</th>
                                  <th>种类</th>
                                  <th>数量</th>
                                  <th>剩余</th>
                                  <th class="text-center">操作</th>
                              </tr>
                          </thead>
                          <tbody>
                          {% for book in books %}
                              <form method="POST">
                                  <tr>
                                  <td>{{ book[0] }}</td>
                                  <td>{{ book[1] }}</td>
                                  <td>{{ book[2] }}</td>
                                  <td>{{ book[3] }}</td>
                                  <td>{{ book[4] }}</td>
                                  <td>{{ book[5] }}</td>
                                  <td class="text-center">
    {#                                  <a class="btn btn-primary btn-sm">编辑</a>#}
                                      <a class="btn btn-danger btn-sm" href="{{ url_for('AllBooks.delete',uid=book[0]) }}">删除</a>
                                  </td>
                              </tr>
                              </form>
                          {% endfor %}
    
                          </tbody>
                      </table>
    
    
                  </div>
                    </div>
            </div>
    
    
              </div>
    </div>
    </body>
    </html>
    

      
    Books Of Lent.html

    <!--已借出的书-->
    <!--管理员登录才能查看-->
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>已借出的书</title>
        <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script>
        <link href="https://cdn.bootcss.com/twitter-bootstrap/3.4.1/css/bootstrap.min.css" rel="stylesheet">
        <script src="https://cdn.bootcss.com/twitter-bootstrap/3.4.1/js/bootstrap.min.js"></script>
    </head>
    <body>
    <!--图书馆管理系统页面-->
    <nav class="navbar navbar-inverse">
      <div class="container-fluid">
        <!-- Brand and toggle get grouped for better mobile display -->
        <div class="navbar-header">
          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="navbar-brand" href="#">资料室图书管理系统</a>
        </div>
    
        <!-- Collect the nav links, forms, and other content for toggling -->
        <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
          <ul class="nav navbar-nav">
            <li class="active"><a href="{{ url_for('register.register') }}"> 注册 <span class="sr-only">(current)</span></a></li>
          </ul>
          <form class="navbar-form navbar-left">
            <div class="form-group">
              <input type="text" class="form-control" placeholder="学号">
            </div>
            <button type="submit" class="btn btn-default">登录</button>
          </form>
          <ul class="nav navbar-nav navbar-right">
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">更多操作 <span class="caret"></span></a>
              <ul class="dropdown-menu">
                <li><a href="{{ url_for('user.index') }}">注销</a></li>
              </ul>
            </li>
          </ul>
        </div>
      </div>
    </nav>
    <div class="container">
        <div class="row">
            <div class="col-md-2">
                <div class="list-group">
                    <a href="{{ url_for('AllBooks.AllBooks') }}" class="list-group-item">图书列表</a>
              <a href="#" class="list-group-item active">
                已借出的书
              </a>
              <a href="{{url_for('BorrowerInformation.borrower')}}" class="list-group-item">借阅人信息</a>
    
    </div>
            </div>
            <div class="col-md-10">
                <div class="panel panel-primary">
                  <div class="panel-heading clearfix">
                    <h3 class="panel-title">图书馆管理系统<span class="glyphicon glyphicon-leaf pull-right"></span></h3>
                  </div>
                  <div class="panel-body">
                      <a href="{{ url_for('BooksOfLent.add') }}" class="btn btn-success">新增</a>
                      <form class="form-inline pull-right" method="GET" action="{{ url_for('BooksOfLent.search') }}">
                          <div class="form-group">
    
                            <div class="input-group">
    
                              <input type="text" class="form-control" name="search" id="search" placeholder="编号">
    
                            </div>
                          </div>
                          <button type="submit" class="btn btn-primary">搜索</button>
                        </form>
                      <table class="table table-hover table-striped table-bordered" style="margin-top: 10px">
                          <thead>
                              <tr>
                                  <th>编号</th>
                                  <th>书名</th>
                                  <th>借阅人学号</th>
                                  <th>借出时间</th>
                                  <th>归还时间</th>
                                  <th>操作</th>
                              </tr>
                          </thead>
                          <tbody>
                          {% for book in books %}
                              <form method="POST">
                                <tr>
                                    <td>{{ book[0] }}</td>
                                    <td>{{ book[1] }}</td>
                                    <td>{{ book[2] }}</td>
                                    <td>{{ book[3] }}</td>
                                    <td>{{ book[4] }}</td>
                                    <td class="text-center">
                                        <a class="btn btn-danger btn-sm" href="{{ url_for('BooksOfLent.delete',uid=book[0]) }}">删除</a>
                                    </td>
                                </tr>
                              </form>
                          {% endfor %}
    
    
                          </tbody>
                      </table>
    
    
                  </div>
                    </div>
            </div>
    
    
              </div>
    </div>
    </body>
    </html>
    

      
    borrower.html

    <!--一打开就是这个页面,注册完跳回这个页面,普通用户登录也跳转回这个页面-->
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>图书列表(普通用户)</title>
        <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script>
        <link href="https://cdn.bootcss.com/twitter-bootstrap/3.4.1/css/bootstrap.min.css" rel="stylesheet">
        <script src="https://cdn.bootcss.com/twitter-bootstrap/3.4.1/js/bootstrap.min.js"></script>
    </head>
    <body>
    <!--图书馆管理系统页面-->
    <nav class="navbar navbar-inverse">
      <div class="container-fluid">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="navbar-brand" href="#">资料室图书管理系统</a>
        </div>
    
        <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
          <ul class="nav navbar-nav">
            <li class="active"><a href="{{ url_for('register.register') }}"> 注册 <span class="sr-only">(current)</span></a></li>
          </ul>
          <form class="navbar-form navbar-left">
            <div class="form-group">
              <input type="text" class="form-control" placeholder="学号">
            </div>
            <button type="submit" class="btn btn-default">登录</button>
          </form>
          <ul class="nav navbar-nav navbar-right">
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">更多操作 <span class="caret"></span></a>
              <ul class="dropdown-menu">
                <li><a href="{{ url_for('user.index') }}">注销</a></li>
              </ul>
            </li>
          </ul>
        </div>
      </div>
    </nav>
    <div class="container">
        <div class="row">
            <div class="col-md-2">
                <div class="list-group">
              <a href="#" class="list-group-item active">
                图书列表
              </a>
    
    
    </div>
            </div>
            <div class="col-md-10">
                <div class="panel panel-primary">
                  <div class="panel-heading clearfix">
                    <h3 class="panel-title">图书馆管理系统<span class="glyphicon glyphicon-leaf pull-right"></span></h3>
                  </div>
                  <div class="panel-body">
                      <table class="table table-hover table-striped table-bordered" style="margin-top: 10px">
                          <thead>
                              <tr>
                                  <th>编号</th>
                                  <th>书名</th>
                                  <th>作者</th>
                                  <th>种类</th>
                                  <th>数量</th>
                                  <th>剩余</th>
                              </tr>
                          </thead>
                          <tbody>
    
                          {% for book in books %}
                              <tr>
                              <td>{{ book[0] }}</td>
                              <td>{{ book[1] }}</td>
                              <td>{{ book[2] }}</td>
                              <td>{{ book[3] }}</td>
                              <td>{{ book[4] }}</td>
                              <td>{{ book[5] }}</td>
                          </tr>
                          {% endfor %}
    
    
                          </tbody>
                      </table>
    
                  </div>
                    </div>
            </div>
    
    
              </div>
    </div>
    </body>
    </html>
    

      
    Borrower Information.html

    <!--借阅人信息-->
    <!--管理员登录才能查看-->
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>借阅人信息</title>
        <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script>
        <link href="https://cdn.bootcss.com/twitter-bootstrap/3.4.1/css/bootstrap.min.css" rel="stylesheet">
        <script src="https://cdn.bootcss.com/twitter-bootstrap/3.4.1/js/bootstrap.min.js"></script>
    </head>
    <body>
    <!--图书馆管理系统页面-->
    <nav class="navbar navbar-inverse">
      <div class="container-fluid">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="navbar-brand" href="#">资料室图书管理系统</a>
        </div>
    
        <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
          <ul class="nav navbar-nav">
            <li class="active"><a href="{{ url_for('register.register') }}"> 注册 <span class="sr-only">(current)</span></a></li>
          </ul>
          <form class="navbar-form navbar-left">
            <div class="form-group">
              <input type="text" class="form-control" placeholder="学号">
            </div>
            <button type="submit" class="btn btn-default">登录</button>
          </form>
          <ul class="nav navbar-nav navbar-right">
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">更多操作 <span class="caret"></span></a>
              <ul class="dropdown-menu">
    
                <li><a href="{{ url_for('user.index') }}">注销</a></li>
              </ul>
            </li>
          </ul>
        </div><!-- /.navbar-collapse -->
      </div><!-- /.container-fluid -->
    </nav>
    <div class="container">
        <div class="row">
            <div class="col-md-2">
                <div class="list-group">
                    <a href="{{ url_for('AllBooks.AllBooks') }}" class="list-group-item">图书列表</a>
              <a href="{{url_for('BooksOfLent.lent')}}" class="list-group-item">已借出的书</a>
              <a href="#" class="list-group-item active">
                借阅人信息
              </a>
    </div>
            </div>
            <div class="col-md-10">
                <div class="panel panel-primary">
                  <div class="panel-heading clearfix">
                    <h3 class="panel-title">图书馆管理系统<span class="glyphicon glyphicon-leaf pull-right"></span></h3>
                  </div>
                  <div class="panel-body">
                    <a href="{{ url_for('BorrowerInformation.add') }}" class="btn btn-success">新增</a>
                          <form class="form-inline pull-right" method="GET" action="{{ url_for('BorrowerInformation.search') }}">
                              <div class="form-group">
    
                                <div class="input-group">
    
                                  <input type="text" class="form-control" name="search" id="search" placeholder="学号">
    
                                </div>
                              </div>
                              <button type="submit" class="btn btn-primary">搜索</button>
                          </form>
    
                      <table class="table table-hover table-striped table-bordered" style="margin-top: 10px">
                          <thead>
                              <tr>
                                  <th>学号</th>
                                  <th>姓名</th>
                                  <th class="text-center">操作</th>
                              </tr>
                          </thead>
                          <tbody>
                          {% for i in inf %}
                          <tr>
                              <td>{{ i[0] }}</td>
                              <td>{{ i[1] }}</td>
                              <td class="text-center">
                                  <a class="btn btn-danger btn-sm" href="{{ url_for('BorrowerInformation.delete',uid=i[0]) }}">删除</a>
                              </td>
                          </tr>
                          {% endfor %}
    
    
                          </tbody>
                      </table>
    
    
                  </div>
                    </div>
            </div>
    
    
              </div>
    </div>
    </body>
    </html>
    

      
    register.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>注册页面</title>
        <style>
            *{
                margin: 0px;
                padding: 0px;
                box-sizing: border-box;
            }
            body{
                background: url("../demo_html/file/17.jpg" )  no-repeat ;
                background-size: 1920px 1200px;
            }
            .rg_layout{
                width: 800px;
                height: 500px;
                border: 5px solid #EEEEEE;
                background-color: #FBFBEF;
                margin-left: 100px;
                margin-top: 180px;
            }
            .rg_left{
                /*border: 1px red solid;*/
                float: left;
                margin: 15px;
            }
            .rg_center{
                /*border: 1px red solid;*/
                float: left;
                margin-left: 60px;
                margin-top: 40px;
    
            }
            .rg_right{
                /*border: 1px red solid;*/
                float: right;
                margin: 10px;
            }
    
            .rg_left > p:first-child{
                color: #FFD026;
                font-size: 18px;
            }
            .rg_left >p:last-child{
                color: #A6A6A6;
                font-size: 16px;
            }
            .rg_right >p:first-child{
                font-size: 10px;
            }
            .rg_right p a {
                color: pink;
            }
    
            .td_left{
                width: 100px;
                height: 40px;
                text-align: right;
            }
            .td_right{
                padding-left: 20px;
            }
            #username,#password,#email,#name,#phone,#abirthday,#checkcod   {
                width: 180px;
                height: 25px;
                border: 1px solid #A6A6A6 ;
                border-radius: 5px;
                padding-left: 10px;
            }
            #checkcod{
                width: 90px;
            }
            #img_check{
                vertical-align: middle;
            }
            #btn_sub{
                width: 100px;
                height: 25px;
                background-color: #FFD026;
                border: solid #FFD026 1px;
                margin-left: 40px;
                margin-top: 20px;
            }
    
    
        </style>
    
    </head>
    <body>
    <!--    最外边的-->
        <div class="rg_layout">
            <!--    最左边的-->
            <div class="rg_left">
                <p >新用户注册</p>
                <p>USER REGISIER</p>
            </div>
    
    
    <!--中间的-->
            <div class="rg_center">
                <div class="rg_from">
                    <form method="post">
                        <table >
                            <tr>
                                <td class="td_left"> <label>学号</label> </td>
                                <td class="td_right"> <input type="password" name="password" id="password" placeholder="请输入学号"> </td>
                            </tr>
                            <tr>
                                <td class="td_left"><label>姓名</label> </td>
                                <td class="td_right"> <input type="text" name="username" id="username" placeholder="请输入姓名"> </td>
                            </tr>
                            <tr>
                                <td colspan="2" align="center"> <input type="submit" id="btn_sub" value="注册" > </td>
                            </tr>
                        </table>
                    </form>
    
    
                </div>
    
            </div>
    
    
        </div>
    
    
    </body>
    </html>
    

    其实该用模板继承呢,会大大减少重复代码量。我弄的这太冗余了!
      
      
    app.py

    from flask import Flask
    from blueprints.user import bp as user_bp
    from blueprints.register import bp as register_bp
    from blueprints.AllBooks import bp as AllBooks_bp
    from blueprints.BooksOfLent import bp as BooksOfLent_bp
    from blueprints.BorrowerInformation import bp as BorrowerInformation_bp
    from blueprints.borrower import bp as borrower_bp
    
    app = Flask(__name__)
    app.register_blueprint(user_bp)
    app.register_blueprint(register_bp)
    app.register_blueprint(AllBooks_bp)
    app.register_blueprint(BooksOfLent_bp)
    app.register_blueprint(BorrowerInformation_bp)
    app.register_blueprint(borrower_bp)
    
    if __name__ == '__main__':
        app.run()
    
    

      
      
      

    总结

      
    这是我学了一个月时间做出来的小项目,功能很少,长得很丑,跟各位大佬的肯定比不了,大家也就将就着看看。

    我之前学的很浅,只会用语言完成学校布置的一些简单题目而已,并不会用语言做其他东西。
    机缘巧合之下,铁甲小宝大佬带我走进编程的世界,引领我学习。没有他,我现在还是个天天傻玩的憨批。

    这个项目是我的第一个编程项目,算是正式入门了,今后我会更加努力学习的!!!

    最后,再次感谢铁甲小宝大佬,祝大佬如愿以偿进大厂!!!

      
              在这里插入图片描述

    展开全文
  • python编写图书管理系统python编写图书管理系统python编写图书管理系统

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,068
精华内容 7,227
关键字:

python图书管理系统