• 基于Python的图书借阅管理系统,附源码


    博主介绍:✌IT徐师兄、7年大厂程序员经历。全网粉丝15W+、csdn博客专家、掘金/华为云//InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌

    🍅文末获取源码联系🍅

    👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟

    2022-2024年最全的计算机软件毕业设计选题大全:1000个热门选题推荐✅

    Java项目精品实战案例《100套》

    Java微信小程序项目实战《100套》

    感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及文档编写等相关问题都可以给我留言咨询,希望帮助更多的人

    1 项目需求

    requirements

    2 系统建模

    2.1 活动图

    普通用户注册后通过前台页面登录,进行浏览、查询、借书、还书等操作。

    图书馆管理员通过后台管理界面登录,可直接对数据库进行增删改查操作。

    活动图

    2.2 用例图

    1. 首页

      用户可以选择登录或注册。

      用例图-首页

    2. 个人中心

      用户可以浏览借阅列表,对列表中的书籍进行还书操作。如果逾期,则还需要缴纳罚金。

      用例图-个人中心

    3. 借书页面

      用户首先通过输入关键字查询相关书籍,然后对返回列表中的书籍进行借书操作。

      用例图-借书页面

    4. 后台管理

      管理员登录后台后可以查看数据库和日志信息,必要时进行增删改查操作。

      用例图-后台管理

    2.3 类图

    在 Django 框架下,所有数据库表模型均继承于 Model 类,所有视图逻辑均继承于 View 类。控制器与用户进行交互,并提供模型数据至视图,实现数据与逻辑的解耦。

    类图

    模型描述
    User用户表,保存所有的用户信息,包括用户名、姓名、密码(摘要)字段,与 Book 存在多对多关系。
    Book书目表,保存所有的书籍信息,包括书号、书名、作者、出版社、是否可借字段。
    Borrow借阅关系表,保存所有的借阅信息,包括序号、借阅者、所借书籍、借出时间、归还期限字段,其中借阅者和所借书籍分别是参照 User 和 Book 的外键。
    Log日志表,保存所有注册、登录、登出、借书、还书的记录,包括序号、时间、用户、相关书籍、操作字段,其中用户和相关书籍分别是参照 User 和 Book 的外键。
    视图描述
    RegisterView注册视图,获取新用户的信息进行注册。
    LoginView登录视图,获取用户名和密码进行登录,并将当前用户状态存入 Session。
    LogoutView登出视图,清空 Session,登出。
    HomeView个人中心视图,显示用户的借阅列表,并提供还书按钮。
    SearchView查询视图,通过输入关键字进行查询,返回相关的书籍列表,并提供借书按钮。
    BorrowView借书视图,完成借书逻辑。
    ReturnView还书视图,完成还书逻辑,若逾期则给出缴纳罚金提示。

    2.4 顺序图

    1. 注册

      用户打开注册页面,输入个人信息,RegisterView 获得后向 User 查询该用户是否不存在,若是则在 User 中增添该用户,并将本次注册操作写入 Log,然后返回注册成功信息。

      顺序图-注册

    2. 登录

      用户打开登录页面,输入用户名和密码,LoginView 获得后向 User 查询该用户是否存在,若是则将本次登录操作写入 Log,然后跳转页面到用户的个人中心。HomeView 向 Borrow 查询该用户的借阅信息,并返回借阅列表。

      顺序图-登录

    3. 借书

      用户打开查询界面,输入想要借的书籍的关键字,SearchView 获得后向 Book 查询相关书籍,并返回书籍列表。用户点击列表项目的借书按钮,BorrowView 向 Borrow 中增添一条该用户的借书记录,然后在 Book 中将该书籍设置为不可借,并将本次借书操作写入 Log,最后返回借书成功信息。

      顺序图-借书

    4. 还书

      用户打开个人中心页面,HomeView 向 Borrow 查询该用户的借阅信息,并返回借阅列表。用户点击列表项目的还书按钮,ReturnView 从 Borrow 中删除这条借书记录,然后在 Book 中将该书籍设置为可借,并将本次还书操作写入 Log,最后返回还书成功信息。如果还书逾期,则还将返回缴纳罚金的提示信息。

      顺序图-还书

    2.5 状态图

    状态图

    3 系统部署说明

    3.1 Requirements

    • Python 3.6
    • Django 3
    • Bootstrap 3
    • jQuery 3
    • MySQL 8

    3.2 启动系统

    1. 在 MySQL 中新建一个名为 library 的数据库,字符集选择 UTF-8

    2. 安装 MySQL 驱动 mysqlclient

      pip install mysqlclient
      
      • 1
    3. library/library/settings.py 中配置数据库的 USERPASSWORD

      DATABASES = {
          'default': {
              'ENGINE': 'django.db.backends.mysql',
              'NAME': 'library',
              'USER': '****',
              'PASSWORD': '************',
              'HOST': '127.0.0.1',
              'PORT': '3306',
          }
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
    4. 进入项目目录下。

      cd ./library
      
      • 1
    5. 迁移数据库。

      python manage.py makemigrations
      python manage.py migrate
      
      • 1
      • 2
    6. 启动系统。

      python manage.py runserver
      
      • 1
    7. 访问 127.0.0.1:8000 。

    4 展示后修改和优化说明

    1. 增加注册时的合法性检验:学号必须为 8 位(多于 8 位的部分无法输入),密码不能少于 6 位,否则将给出提示。

      学号

      密码

    2. 实现对书名、作者、出版社三个字段的模糊查询。此外,将有馆藏记录但当前已借出的书籍也显示出来(没有借书按钮),而不是仅展示当前能借的书籍。这样能告诉用户这本书是有的,只是当前已经被别人借走了,可以过一段时间再来查询。

      借书

    5 推荐阅读

    Java基于SpringBoot+Vue的网上图书商城管理系统(附源码,教程)

    基于 Python 的豆瓣电影分析、可视化系统,附源码

    Java 基于SpringBoot的某家乡美食系统

    Java基于SpringBoot的学生就业管理信息系统

    6 源码获取:

    大家点赞、收藏、关注、评论啦 、查看👇🏻获取联系方式👇🏻

    👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟

    2022-2024年最全的计算机软件毕业设计选题大全:1000个热门选题推荐✅

    Java项目精品实战案例《200套》

    Java微信小程序项目实战《100套》

    感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及文档编写等相关问题都可以给我留言咨询,希望帮助更多的人

  • 相关阅读:
    猿创征文|【HTML】标签学习之路
    Apache Doris tablet 副本修复的原理、流程及问题定位
    TCP/IP
    物联网设备通信
    Scrapy基本概念——Item Pipeline
    R语言数据结构-----向量
    vscode使用ssh连接远程Ubuntu服务器(记录)
    C 语言与 C++ 语言中全局变量重新声明的行为差异
    如何看待“低代码”开发平台的兴起?
    原生ajax
  • 原文地址:https://blog.csdn.net/yujun2023/article/details/137981880