【毕业设计】基于Django+Vue的图书借阅管理系统的设计与实现

博主主页:Joyce Lee 博主简介:专注Python技术领域和毕业设计项目实战、网页设计、微信小程序、Vue,React等技术开发,远程调试部署、代码讲解等技术指导。
主要内容:Vue、HTML、Nodejs、Python、小程序、Django、Flask、DRF、React、可视化等设计与开发。

感兴趣的可以收藏 + 关注,所有项目均配有开发文档,源码,可以定制化功能开发,远程安装运行!!

🍅文末获取联系🍅 ————————————————

项目介绍

这是一个基于Django+Vue开发的图书借阅管理系统。采用B/S架构,后端使用Python语言基于开发,前端使用Vue.js框架进行开发,数据库使用MySQL。

整个系统包括前台和后台两个部分。

系统演示

基于Django+Vue的图书借阅管理系统

系统功能模块

前台功能模块(读者)
  • 登录注册模块
  • 图书管理模块(实现查看图书列表、查询图书、查看详情、收藏、借阅、新书推荐、热门推荐等)
  • 借阅管理模块(实现自己的借阅、归还、续借等)
  • 公告管理(实现查看系统公告)
  • 个人中心模块(实现修改个人信息、修改密码、头像等)
  • 积分管理(实现查看个人积分使用明细等)
后台功能模块(管理员)
  • 数据可视化(实现借阅排行、热门借阅、推荐图书等各种可视化图表)

  • 图书管理(实现图书的添加、删除、修改、查询)

  • 分类管理(实现分类的添加、删除、修改、查询,平台按照不同分类对图书进行管理,如文学、历史、科学等)

  • 标签管理(实现标签的添加、删除、修改、查询)

  • 读者管理(实现读者的添加、删除、修改、查询)

  • 公告管理(实现系统公告的添加、删除、修改、查询,包括图书借阅规则、新书上架通知、系统维护公告等)

  • 借阅管理(实现系统所有借阅的管理)

开发环境

软件包 版本
Node 16.14.2
MySQL 8.0.31
Python 3.8
Vue 2

系统界面

前台

首页

在这里插入图片描述

我的借阅

在这里插入图片描述

我的积分

在这里插入图片描述

系统公告

在这里插入图片描述

账号安全

在这里插入图片描述

个人设置

在这里插入图片描述

后台

首页

在这里插入图片描述

借阅管理

在这里插入图片描述

图书管理

在这里插入图片描述

分类管理

在这里插入图片描述

标签管理

在这里插入图片描述

用户管理

在这里插入图片描述

公告管理

在这里插入图片描述

源码实现

读者借阅模块后端源码
# Create your views here.
import datetime

from rest_framework.decorators import api_view, authentication_classes

from myapp.auth.authentication import TokenAuthtication
from myapp.handler import APIResponse
from myapp.models import Borrow, Book
from myapp.serializers import BorrowSerializer


@api_view(['GET'])
def list_api(request):
    if request.method == 'GET':
        userId = request.GET.get('userId', -1)
        borrowStatus = request.GET.get('borrowStatus', '')

        borrows = Borrow.objects.all().filter(user=userId).filter(status__contains=borrowStatus).order_by('-borrow_time')
        serializer = BorrowSerializer(borrows, many=True)
        return APIResponse(code=0, msg='查询成功', data=serializer.data)


@api_view(['POST'])
@authentication_classes([TokenAuthtication])
def create(request):
    """
    创建借书
    """

    data = request.data.copy()
    if data['user'] is None or data['book'] is None:
        return APIResponse(code=1, msg='参数错误')

    book = Book.objects.get(pk=data['book'])
    if book.repertory <= 0:
        return APIResponse(code=1, msg='库存不足')

    borrows = Borrow.objects.filter(book=data['book']).filter(user=data['user']).filter(status='1')
    if len(borrows) > 0:
        return APIResponse(code=1, msg='您已经借过该书了')

    create_time = datetime.datetime.now()

    data['status'] = '1'
    data['delayed'] = False
    data['create_time'] = create_time
    data['expect_time'] = create_time + datetime.timedelta(days=30)
    serializer = BorrowSerializer(data=data)
    if serializer.is_valid():
        serializer.save()
        # 减库存
        book.repertory = book.repertory - 1
        book.save()

        return APIResponse(code=0, msg='借书成功', data=serializer.data)
    else:
        print(serializer.errors)
        return APIResponse(code=1, msg='借书失败')


@api_view
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Joyce Lee

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值