目 录
摘 要 I
Abstract II
1 绪论 1
1.1 选题背景及意义 1
1.1.1 选题背景 1
1.1.2 目的意义 1
1.2 研究现状 2
1.3 论文组织安排 3
2 开发工具及其技术 4
2.1 Python 4
2.2 Django 5
2.3 MySQL 6
2.4 Django Rest Framework 7
3 需求分析 8
3.1 可行性研究 8
3.1.1 技术可行性 8
3.1.2 经济上的可行性 8
3.1.3 操作上的可行性 8
3.2 系统需求分析 8
3.3 程序流程图 9
4 系统设计 11
4.1 总体功能模块 11
4.2 具体功能模块 11
4.3 系统业务描述 12
4.4 数据库设计 13
4.4.1系统和数据库的配置 13
4.4.2 概念模型设计 14
4.4.3 数据库ER 15
4.4.4 数据库表设计及结构 17
5 系统实现 21
5.1 网站登录与注册页面 21
5.2 后台管理登录页面 22
5.3 图书管理页面 23
5.4 借书管理页面 24
5.5 还书管理与历史借书页面 25
5.6 查询图书 25
6 系统测试 28
6.1 系统测试的目的以及任务 28
6.2 测试环境 28
6.3 软件测试 28
6.4 测试结果 29
7 总结 31
参考文献 32
致 谢 34
3 需求分析
3.1 可行性研究
可行性研究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决,其中它包括技术可行性、经济可行性和操作可行性。
3.1.1 技术可行性
本系统前台数据库采用mysql 数据库,该数据库系统在安全性、准确性和运行速度方面比其他数据库有绝对的优越性,并且处理数据量大,效率高。
本系统后台采用Microsoft的公司的MyEclipse8.5作为主要的开发平台,它提供了完善的指令控制语句、类与对象的支持及丰富的数据类型,给开发系统提供了高性能的保障。而且保证了代码的模块化要求,便于以后系统的扩展和修改。
综上所述,本系统的设计与开发在技术上和硬件设备上的条件都是满足的。因此,在技术方面是可行的。
3.1.2 经济上的可行性
在网络高速发展的今天,本系统将为销售效率开启一个新的窗口,其优越性有以下几点:
(1)本系统的运行可以减少不必要的人力,为学校节省更多的资源;
(2)本系统可以统计大量的数据,对各个数据库进行分类管理,保证数据的安全性和统一性;
所以本系统在经济上是可行的。
3.1.3 操作上的可行性
本系统是结合实际工作需要而开发,对于硬件和软件的要求很普遍,能解决当前工作中的诸多问题,因此该项目符合相关部门的工作实际,有稳定而扎实的合作基础。从操作方讲有项目操作更好完成的基础和可行性。从前面分析看,技术上的操作己经日臻完善和成熟,技术实现的可操作性非常大,并且开发完成此系统后,用户只需使用浏览器即可登录使用本系统。从而系统的操作是可行的,能最终以满足客户需求,达到最初开发目的的目标。因此,本系统在运行上是可行的。
3.2 系统需求分析
系统需求分析是对对象进行系统调查,是系统开发工作中最重要的环节之一,系统需求分析需要准确回答“系统必须做什么,目的是什么”。
在软件工程中,需求分析指的是在建立一个新的或改变一个现存的电脑系统时描写新系统的目的、范围、定义和功能时所要做的所有的工作。需求分析是软件工程中的一个关键过程。在这个过程中,系统分析员和软件工程师确定顾客的需要。只有在确定了这些需要后他们才能够分析和寻求新系统的解决方法。需求分析阶段的任务是确定软件系统功能。
在软件工程的历史中,很长时间里人们一直认为需求分析是整个软件工程中最简单的一个步骤,但在过去十年中越来越多的人认识到它是整个过程中最关键的一个过程。假如在需求分析时分析者们未能正确地认识到顾客的需要的话,那么最后的软件实际上不可能达到顾客的需要,或者软件无法在规定的时间里完工。
4.3 系统业务描述
本系统主要开发目的是方便图书管理人员进行图书信息管理,增加工作效率,面向的客户群体是各级图书馆的工作人员。本文转载自http://www.biyezuopin.vip/onews.asp?id=14120根据本系统的需求,结合实际管理情况,本系统应用有如下功能模块:
1.基本信息设置:如操作人员的编辑,操作人员密码的修改。
2.用户的管理:可以查询、增加、修改、删除用户信息。
3.图书信息管理:可以添加分类、增加、删除、修改图书信息。
4.查询图书信息:查看、修改图书状态,并在用户查询时智能推荐同类图书。
5.添加图书借阅信息。
6.借阅还书功能。

from django.shortcuts import render
from django.views.generic import View
from apps.Index.models import Admin
from django.http import HttpResponse, HttpResponseRedirect
from django.shortcuts import redirect
from django.urls import reverse
from json import dumpsclass IndexView(View):def get(self, request):# 显示首页,使用模板return render(request, 'index.html')class FrontLoginView(View):# 前台登录def post(self,request):# 登录校验接收数据username = request.POST.get('userName')password = request.POST.get('password')try:admin = Admin.objects.get(username=username, password=password)request.session['user_name'] = usernamedata = {'msg': '登录成功', 'success': True}except Admin.DoesNotExist:# 用户名密码错误data = {'msg': '登录失败', 'success': False}# ensure_ascii=False用于处理中文return HttpResponse(dumps(data, ensure_ascii=False))class FrontLoginOutView(View):def get(self,request):del request.session['user_name']  # 删除指定数据request.session.clear()  # 清空的是值request.session.flush()  # 键和值一起清空return HttpResponseRedirect(reverse("Index:index"))class LoginView(View):# 后台登录页面def get(self,request):return render(request, 'login.html')def post(self,request):# 登录校验接收数据username = request.POST.get('username')password = request.POST.get('password')try:admin = Admin.objects.get(username=username, password=password)request.session['username'] = usernamedata = {'msg': '登录成功', 'success': True}except Admin.DoesNotExist:# 用户名密码错误data = {'msg': '登录失败', 'success': False}# ensure_ascii=False用于处理中文return HttpResponse(dumps(data, ensure_ascii=False))class LoginOutView(View):def get(self, request):# del request.session['username']  # 删除指定数据request.session.clear()  # 清空的是值request.session.flush()  # 键和值一起清空return redirect(reverse("Index:login"))class MainView(View):# 后台主界面def get(self,request):return render(request, 'main.html')class ChangePasswordView(View):def get(self, request):return render(request, 'password_modify.html')def post(self, request):oldPassword = request.POST.get('oldPassword')newPassword = request.POST.get('newPassword')newPassword2 = request.POST.get('newPassword2')if oldPassword == '':return render(request, 'message.html', {'message': '旧密码不正确!'})if newPassword == '':return render(request, 'message.html', {'message': '请输入新密码!'})if newPassword != newPassword2:return render(request, 'message.html', {'message': '两次新密码不一样!'})username = request.session['username']admin = Admin.objects.get(username=username)if oldPassword != admin.password:return render(request, 'message.html', {'message': '旧密码不正确!'})admin.password = newPasswordadmin.save()return render(request, 'message.html', {'message': '密码修改成功!'})

































基于Django图书管理系统设计与实践相关推荐

  1. 【Java图书馆系统app】基于Vue+Vant+SSM图书管理系统设计

    源码地址:[Java图书馆系统app]基于Vue+Vant+SSM图书管理系统设计.zip_java条码管理系统-Android文档类资源-CSDN下载具体运行截图见项目说明:https://blog ...

  2. c语言子菜单退出返回主菜单,毕业论文_图书管理系统设计报告077喜欢就下吧(范文1)...

    <毕业论文:图书管理系统设计报告07.doc>由会员分享,可免费在线阅读全文,更多与<毕业论文_图书管理系统设计报告07(7)(喜欢就下吧)>相关文档资源请在帮帮文库(www. ...

  3. Django 图书管理

    Django 图书管理 (一)创建Django项目 - books (二)创建并注册应用 - index 1.创建index应用 2.注册index应用 (三)创建数据库 - books (四)配置M ...

  4. 基于stm32电梯管理系统设计

    基于stm32电梯管理系统设计 ==这里记录一下以前自己做的嵌入式课程设计,报告中的图片和文字太多了,全部一个一个把搬过来太麻烦了,需要完整文本和代码自行主页私我== 摘要 关键词 一.课题概述 1. ...

  5. 基于springboot信用分析管理系统设计与实现。

    项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等.这里根据疫情当下,你 ...

  6. 快递管理系统 java_快递管理基于java物流快递管理系统设计.doc

    快递管理基于java物流快递管理系统设计 快递管理系统 毕业设计论文 题 目 快递管理系统 姓 名 王敏雪 所 属 系 数学与计算机科学 专 业 计算机科学与技术 班 级 07级计科三班 指导教师 张 ...

  7. javaee图书管理系统mysql,图书管理系统设计与实现—看这篇就够了

    图书管理系统设计与实现 > 图书馆人员结构复杂,人员数量有限,涉及方面很广,如果还使用手工操作处理图书借阅问题,工作将非常繁琐,需要大量的人力.物理.财力,极大的浪费了资源,对于图书管理人员来说 ...

  8. python 面向对象程序设计 1.3 请为学校图书管理系统设计一个管理员类和一个学生类。

    题目: 请为学校图书管理系统设计一个管理员类和一个学生类.其中,管理员信息包括工号.年龄.姓名和工资:学生信息包括学号.年龄.姓名.所借图书和借书日期.最后编写一个测试程序对产生的类的功能进行验证.建 ...

  9. SpringBoot图书管理系统设计与实现(附源码下载地址)

    文章目录 01 系统概述 02 开发工具及技术选型 03 运行环境 04 用户分析 05 功能分析 06 数据库设计 07 项目工程结构及说明 08 部分功能展示及源码 8.1 首页 8.2 图书管理 ...

  10. 基于PHP房屋租赁管理系统设计与实现

    实现功能: 1.房产信息管理:管理员可以对租赁房屋信息进行增删改和查询. 2.用户注册:用户需要注册会员,才可登录进行租房信息的查询和筛选. 3.会员预约看房:会员登录后,可添加关注感兴趣的出租房,并 ...

最新文章

  1. 条款22: 尽量用“传引用”而不用“传值”
  2. 理解 ajax、fetch和axios
  3. SQL Server2016 原生支持JSON
  4. Ajax+Node.js前后端交互最佳入门实践(05)
  5. Oral certificate at 7TH INTERNATIONAL CONFERENCE ON CONTROL, AUTOMATION AND ROBOTICS (ICCAR)
  6. oracle 根据spid查sql,探讨:Oracle数据库查看一个进程是如何执行相关的实际SQL语句...
  7. Cookie和Session-学习笔记01【Cookie_快速入门、Cookie_细节】
  8. Java ClassLoader setClassAssertionStatus()方法与示例
  9. OpenCV辅助对象(help objects)(5)_DataType
  10. oracle和mysql文件怎么打开_mysql与oracle数据库停止与打开的批处理文件
  11. meteor 检测运行环境,手机或者桌面
  12. Javaweb图书管理系统的设计与实现(含毕业设计)
  13. 黑苹果系统镜像稳定版 10.9.5 - 10.15.6 整合下载
  14. 第22篇 项目进度管理__计划评审技术__重点内容
  15. 《短码之美》Ozy著学习笔记
  16. asp 在线发送邮件
  17. 简单的交叉熵损失函数,你真的懂了吗?
  18. 华为服务器做系统密码,华为服务器默认密码是多少
  19. 5 月计算机语言排行,TIOBE 5月编程语言排行榜
  20. 世界杯“引爆”东南亚电商狂潮,电商人如何选品和营销?

热门文章

  1. 学习日记——FPGA入门基础
  2. PLSQL导出表结构和表数据
  3. Spark SQL自定义函数案例(拼接字符串)
  4. L2-026 小字辈 (25 分)
  5. 我的IC之旅——资深芯片设计验证工程师成长——“胡”说IC工程师完美进阶
  6. @ab测试工具使用详解
  7. saas商业级的小程序商城(已开源)
  8. ahk键盘增强✨✨✨v1.1
  9. 常见机器人离线编程软件对比
  10. 偷梁换柱:谨防“Synaptics”蠕虫病毒