目 录
摘 要 I
Abstract II
1 引言 1
1.1选题背景及意义 1
1.2发展现状 1
1.3研究主要内容 2
2 关键技术介绍 4
2.1相关技术简介 4
2.1.1 B/S体系相关介绍 4
2.1.2 Python语言介绍 4
2.1.3 Djang框架介绍 5
2.2技术方案选择 6
2.3开发环境的确定 7
3 系统分析 8
3.1可行性分析 8
3.2 系统需求分析 9
3.2.1 开发设计思想 9
3.2.2 开发项目的功能需求 9
3.3处理流程设计 10
3.3.1系统操作流程图 10
3.3.2数据增加流程 10
3.3.3数据修改流程图 11
3.3.4数据删除流程图 11
3.4输入输出设计 12
3.4.1输入设计 12
3.4.2输出设计 12
4 系统设计 13
4.1系统功能模块设计 13
4.1.1系统功能总体模块设计 13
4.1.2子功能模块设计 13
4.2数据库设计 15
4.2.1数据字典 15
4.2.2系统实体图 16
4.2.3流程图 18
4.2.4数据表设计 19
5 系统实现 22
5.1系统用户管理功能模块的设计 22
5.1.1系统用户管理功能模块的设计 22
5.3会员卡类别模块的设计 23
5.4器材管理的实现 23
5.5健身教练管理的实现 24
5.6系统用户修改密码的实现 25
5.6.1 前端页面 25
5.6.2 web层 26
5.6.3 service层 27
5.6.4 dao层以及mapper 27
6 系统测试 29
6.1测试用例 29
6.1.1 以健身会员信息的添加、修改、删除为例进行测试 29
6.1.2 测试用例之登录管理 29
6.1.3 以该系统设计的菜单中会员管理菜单项为例进行测试 30
7 总结与展望 31
7.1 总结 31
7.2系统的不足与改进方案 31
7.2.1 系统的不足 31
7.2.2 系统的改进方案 31
参考文献 32
致 谢 34
3 系统分析
3.1可行性分析
该系统主要是对会员的信息和会员卡进行管理,同时可以对工作人员,设备器材,和健身教练信息进行管理,方便快捷操作,精简人员,节约开支;并且还可以使健身房的工作方式更加简洁明了,也大大提高了工作人员的办事效率,更重要的是使管理人员能够更快速、方便的对每一位健身房会员的信息有一个清楚了解,管理起来非常简单,同时也减少了信息管理的漏洞和因为工作的冗余出现的错误,并且操作非常方便,可以减少许多不必要的人员。所以该系统是可行的。
健身房管理系统的开发的总设计目标是实现会员管理以及相关东西管理的系统化、规范化和自动化实现对会员的集中地统一的管理。我根据管理上的可行性、技术上的可行性、经济上的可行性进行分析。
管理上的可行性
由于原有的管理系统不能满足日趋发展的健身房管理系统工作的需要,所以建立新的健身房管理系统是必须的,因此开发更为系统科学规范的健身会员信息系统以便为会员提供更好、更便捷的服务,同时也为健身房相关东西的管理提供更好的保障。流程比较清晰,规章制度齐全,健身会员信息原始数据精确。
技术上的可行性
目前整个社会的健身房都是为了用户和健身房本身所设计,一个健身房管理系统更是得到许多健身房拥有者的支持,再加上现在计算机技术的发展,这些为我们设计健身房管理系统提供了软件和硬件的双重保障。
经济上的可行性
该系统的开发只需计算机和相应开发软件就可以,开发成本较低。随着该系统的投入使用,科学管理工作效率会大大提高,工作流程更加合理流畅,查询统计更加方便快捷,因此该系统的社会效益十分明显。综上所述,此系统的开发条件基本具备,可以进行开发。我用电话访问的方式访问了许多健身房拥有者,大多数的受访者都表达了对此健身房管理系统的兴趣并有兴趣采用。
3.2 系统需求分析
下面主要围绕两个核心问题开展需求分析:(1)开发设计思想(2)开发项目的功能需求:
3.2.1 开发设计思想
①尽量采用健身房现有的软硬件环境,以及先进的管理系统开发方案,从而达到充分利用健身房现有资源,提高系统开发水平和应用效果的目的。
②系统应对健身会员的基本信息进行添加、修改、删除、保存以及实现对健身会员资料的查询。
③健身房系统应符合器材管理、会员卡管理以及人员管理系统的规定,达到理想的效果。
④该系统应该具备数据库维护功能,及时根据健身房需求进行数据的添加、删除、修改等操作。本文转载自http://www.biyezuopin.vip/onews.asp?id=14116能够对数据库表进行备份和恢复。
3.2.2 开发项目的功能需求
①具有对健身房会员的基本信息的管理
②具有对健身房会员的会员卡的管理功能
③具有健身房会员的资料查询、会员卡查询功能
④具有对建身器材信息管理功能
⑤具有健身教练管理功能
该系统主要是对建身房会员信息、会员会员卡信息、会员的健身信息以及健身器材信息的管理。

import jsonfrom django.contrib.auth.mixins import LoginRequiredMixin
from django.core.paginator import PageNotAnInteger, Paginator
from django.http import HttpResponse, HttpResponseRedirect
from django.shortcuts import render, redirect# Create your views here.
from django.urls import reverse
from django.views.generic.base import Viewfrom bbs.models import Post
from course.models import Course, CourseList
from teachers.models import Teacher
from users.forms import UserInfoForm
from users.models import UserMessage, UserFavoriteclass TeacherinfoView(LoginRequiredMixin, View):"""用户个人信息"""def get(self, request):tea_obj = Teacher.objects.get(user=request.user)return render(request, 'teacher-info.html', {"tea_obj":tea_obj})def post(self, request):user_info_form = UserInfoForm(request.POST, instance=request.user)if user_info_form.is_valid():user_info_form.save()return HttpResponse('{"status":"success"}', content_type='application/json')else:return HttpResponse(json.dumps(user_info_form.errors), content_type='application/json')class TeacherListView(View):def get(self, request):sort=request.GET.get("sort","")all_teacher = Teacher.objects.all()count=Teacher.objects.count()all_teacher.order_by("-fav_nums")if sort=="hot":all_teacher=all_teacher.order_by("fav_nums")paginator=Paginator(all_teacher,8)page_num=request.GET.get('page',1)page_of_teacher = paginator.get_page(page_num)return render(request, 'teachers-list.html',{"all_teacher": page_of_teacher,"count":count}, )class TeacherDetailView(View):def get(self, request, teacher_id):has_teacher_faved = Falseif UserFavorite.objects.filter(user_id=request.user.id, fav_type=3, fav_id=int(teacher_id)):has_teacher_faved = Trueteacher = Teacher.objects.get(user_id=int(teacher_id))all_couse=Course.objects.filter(usermessage_id=int(teacher_id))return render(request, "teacher-detail.html", {"teacher": teacher,"all_courses":all_couse,"has_teacher_faved": has_teacher_faved,})class ReleaseCourse(LoginRequiredMixin, View):def get(self, request):all_course=Course.objects.filter(usermessage=request.user)# return render(request, 'rel_course.html', {})return render(request, 'couse-teacher.html', {"all_course":all_course})def post(self, request):name = request.POST.get("name")detail = request.POST.get("detail")heat = request.POST.get("heat")learm_times = request.POST.get("learn_times")degree = request.POST.get("degree")image = request.FILES.get("image")is_m = request.POST.get("is_m")c_obj = Course()c_obj.name = namec_obj.detail = detailc_obj.heat = heatc_obj.learm_times = learm_timesc_obj.degree = degreec_obj.image = imagec_obj.usermessage = request.userif is_m == '1':c_obj.is_member = Trueelse:c_obj.is_member = Falsec_obj.save()return HttpResponseRedirect(reverse("teacher:relcou"))class AddCouListView(View):def get(self, request):all_course=Course.objects.filter(usermessage=request.user)all_coustlist=CourseList.objects.filter(user_id=request.user.id)return render(request, 'add_course.html', {'all_course':all_course,"all_coustlist":all_coustlist})def post(self, request):course = request.POST.get("course")sta_time = request.POST.get("sta_time")end_time = request.POST.get("end_time")cl_obj=CourseList(user_id=request.user.id,course_id=course,sta_time=sta_time,end_time=end_time)cl_obj.save()return HttpResponseRedirect(reverse("teacher:addclist"))class UpCouListView(View):def post(self, request):coulist_id = request.POST.get("couid")course = request.POST.get("course")sta_time = request.POST.get("sta_time")end_time = request.POST.get("end_time")cl_obj = CourseList.objects.get(id=int(coulist_id))cl_obj.course_id = int(course)cl_obj.sta_time = sta_timecl_obj.end_time = end_timecl_obj.save()return HttpResponseRedirect(reverse("teacher:addclist"))
class DeCouListView(View):def post(self, request):coulist_id=request.POST.get("_id")if coulist_id:cl_obj=CourseList.objects.get(id=int(coulist_id)).delete()all_course = Course.objects.filter(usermessage=request.user)return HttpResponse('{"status":"ok"}', content_type='application/json')class AddFavView(View):def post(self, request):fav_id = request.POST.get('fav_id', 0)fav_type = request.POST.get('fav_type', 0)# if not request.user.is_authenticated():#     #判断用户登录状态#     return HttpResponse('{"status":"fail", "msg":"用户未登录"}', content_type='application/json')exist_records = UserFavorite.objects.filter(user=request.user, fav_id=int(fav_id), fav_type=int(fav_type))if exist_records:#如果记录已经存在, 则表示用户取消收藏exist_records.delete()if int(fav_type) == 1:course = Course.objects.filter(id=int(fav_id))course.fav_nums -= 1if course.fav_nums < 0:course.fav_nums = 0course.save()elif int(fav_type) == 3:teacher = Teacher.objects.get(user_id=int(fav_id))teacher.fav_nums -= 1if teacher.fav_nums < 0:teacher.fav_nums = 0teacher.save()return HttpResponse('{"status":"success", "msg":"收藏"}', content_type='application/json')else:user_fav = UserFavorite()if int(fav_id) > 0 and int(fav_type) > 0:user_fav.user = request.useruser_fav.fav_id = int(fav_id)user_fav.fav_type = int(fav_type)user_fav.save()if int(fav_type) == 1:course = Course.objects.get(id=int(fav_id))course.fav_nums += 1course.save()elif int(fav_type) == 3:teacher = Teacher.objects.get(user_id=int(fav_id))if teacher:teacher.fav_nums += 1else:teacher=Teacher(user=request.user,fav_nums=1)teacher.save()return HttpResponse('{"status":"success", "msg":"已收藏"}', content_type='application/json')else:return HttpResponse('{"status":"fail", "msg":"收藏出错"}', content_type='application/json')class SelStuView(View):def get(self, request):all_c=Course.objects.filter(usermessage=request.user)all_c=[_obj.id for _obj in all_c]fav_courses = UserFavorite.objects.filter(fav_type=1,fav_id__in=all_c)students = []for fav_course in fav_courses:students.append(fav_course.user)students = set(students)return render(request, 'mystu.html', {"students":students})class MyFanView(View):def get(self, request):teacher_list = []fav_teachers = UserFavorite.objects.filter(fav_type=3,fav_id=request.user.id)return render(request, 'myfan.html', {"teacher_list":fav_teachers})
class UpCourse(View):def post(self, request):couid=request.POST.get("couid")name = request.POST.get("name")detail = request.POST.get("detail")heat = request.POST.get("heat")learm_times = request.POST.get("learn_times")degree = request.POST.get("degree")image = request.FILES.get("image")is_m = request.POST.get("is_m")if couid:c_obj = Course.objects.get(id=couid)c_obj.name = namec_obj.detail = detailc_obj.heat = heatc_obj.learm_times = learm_timesc_obj.degree = degreeif image:c_obj.image = imagec_obj.usermessage = request.userif is_m == '1':c_obj.is_member = Trueelse:c_obj.is_member = Falsec_obj.save()return redirect(reverse('teacher:relcou'))class CourseDe(View):def post(self, request):couid=request.POST.get("_id")if couid:c_obj = Course.objects.get(id=couid).delete()all_course = Course.objects.filter(usermessage=request.user)return redirect(reverse('teacher:relcou'))class DeleteBbs(View):def get(self,request):post_all=Post.objects.filter(author_id=request.user.id)return render(request, 'deletebbs.html', {"post_all": post_all})def post(self,request):bbsid=request.POST.get("bbsid")if bbsid:post_obj = Post.objects.get(id=int(bbsid))post_obj.delete()return HttpResponse('{"status":"success", "msg":"删除成功"}', content_type='application/json')else:return HttpResponse('{"status":"fa", "msg":"删除失败"}', content_type='application/json')

























基于Django的健身房管理系统相关推荐

  1. 基于JavaEE的健身房管理系统的设计

    活动地址:毕业季·进击的技术er 博主介绍:✌在职Java研发工程师.专注于程序设计.源码分享.技术交流.专注于Java技术领域和毕业设计✌ 项目名称 基于JavaEE的健身房管理系统的设计 视频效果 ...

  2. 毕业设计——>基于SSM的健身房管理系统

    有价值的Java项目参考资料,实现网站的开发(不是广告) 1.包含源程序,数据库脚本.代码和数据库脚本都有详细注释. 2.课题设计仅供参考学习使用,可以在此基础上进行扩展完善 开发环境: Eclips ...

  3. 基于SpringBoot的健身房管理系统(提供源码)

    项目演示地址:http://gym.liujian.cool 项目gitHub源码地址:https://github.com/liujianview/gymxmjpa 项目gitee源码地址:http ...

  4. 基于SpringBoot的健身房管理系统(源代码+数据库) 043

    部分代码地址 https://gitee.com/ynwynwy/gym-public 基于SpringBoot的健身房管理系统(源代码+数据库) 043 一.系统介绍 系统层次结构图如下: 管理员登 ...

  5. 计算机毕业设计-基于ssm的健身房管理系统-基于javaweb的健身房系统代码

    计算机毕业设计-基于ssm的健身房管理系统-基于javaweb的健身房系统代码 注意:该项目只展示部分功能,如需了解,联系咨询即可. 作者:IT跃迁谷 1.开发环境 开发语言:Java 后台:SSM( ...

  6. (附源码)计算机毕业设计SSM基于Java的健身房管理系统

    (附源码)计算机毕业设计SSM基于Java的健身房管理系统 项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe ...

  7. 【毕业设计】 基于Django的图书管理系统

    文章目录 1 前言 2 背景意义 3 功能需求 4 技术栈 5 实现效果 6 项目架构 7 数据库表设计 7.1 出版社信息表 7.2 图书信息表 7.3 作者信息表 7.4 用户信息表 8 部分代码 ...

  8. 基于django奶茶店管理系统

    1,项目功能: (1)采购单创建:该模块可以实现通过添加采购信息,并把采购信息录入数据库. (2)采购单查看:该模块实现采购单的查看,查看采购的详细信息. (3)仓库订单确认:通过订单信息查看,并进行 ...

  9. 毕业设计——基于SSM的健身房管理系统

    该系统已经上传CSDN官方资源,下载地址: https://download.csdn.net/download/qq_16397653/14027661 1.包含源程序,数据库脚本.代码和数据库脚本 ...

最新文章

  1. zookeeper图形工具——zkui
  2. Lilt:一个为翻译专家开发的人工智能翻译平台
  3. 不该建索引及不走索引的原因
  4. kmalloc、vmalloc、malloc、calloc的区别
  5. MFC 多文档中同时打开多个文档
  6. 【Linux】 iptables vs firewalld
  7. ALEIDoc EDI(6)--Filter Conversion
  8. ASP.NET MVC3 中设置htmlAttribute
  9. Qt4 QRadioButton和QCheckBox用法示例
  10. HTRAN 2.4终极使用
  11. java使用iframe简单登录界面_Layui-admin-iframe通过页面链接直接在iframe内打开一个新的页面,实现单页面的效果...
  12. 【生活相关】实验室专题研讨PPT模板说明备忘
  13. 关闭eslink:报错:Unexpected tab character no-tabs
  14. MySql常用函数汇总
  15. php动态万年历模块,php如何实现万年历的开发(每日一课真是非常有效率)
  16. 机器学习算法工程师面试问题
  17. 有关于TCP三次握手和四次挥手的理解
  18. Visual C# 操作 Excel 文件(二) 封裝成 MyExcel 類
  19. 关于错误 Unhandled exception in (KERNEL32.DLL):0xE06D7363:Microsoft C++ Exce vc and access insert 记录
  20. Gstore官网学习六:安装和部署workbench(自带填坑)

热门文章

  1. VCN中文编程平台的优势(三)——企业的社会责任
  2. Calibre for Mac v5.29.0电子书阅读管理工具
  3. springboot毕设项目基于的人才招聘系统6czpy(java+VUE+Mybatis+Maven+Mysql)
  4. ARM服务器和云手游
  5. ToF相机从Camera2 API中获取DEPTH16格式深度图
  6. hdfs清理回收站命令(参考)
  7. 个人商业模式,如何让自己变得值钱
  8. Linux系列 使用vi文本编辑器
  9. 我的mybatis plus——全公司同事开始模仿了!
  10. 女人长的漂亮不如活的漂亮(Top60)