《数据库原理及应用》课件-选课管理系统-课程设计报告_第1页
《数据库原理及应用》课件-选课管理系统-课程设计报告_第2页
《数据库原理及应用》课件-选课管理系统-课程设计报告_第3页
《数据库原理及应用》课件-选课管理系统-课程设计报告_第4页
《数据库原理及应用》课件-选课管理系统-课程设计报告_第5页
已阅读5页,还剩76页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

江南大学课程设计选课管理系统江南大学课程设计报告题目:选课管理系统院(系):人工智能与计算机学院专业:人工智能班级:智能2X0X学号:105221XXXX姓名:王XXXX指导老师:钱雪忠2024年6月24日~2024年7月06日成绩:目录TOC\o"1-4"\h\z\u1.开发背景 42.系统描述 42.1需求描述 42.2功能描述 52.3项目预览 63.系统设计 83.1角色分析 83.2开发工具介绍 83.3Python环境总结 93.4开发技术介绍 93.5项目结构 93.6项目开发流程 93.6.1创建Django项目和应用 93.6.2配置数据库 103.6.3定义模型 103.6.4迁移数据库 123.6.5创建超级用户 133.6.5注册模型到Admin 133.6.7创建视图和URL 133.6.8创建模板 143.6.9运行服务器 144.数据库设计 144.1数据库分析 144.2数据库概念设计 164.3表结构说明 164.4数据表关系 185.系统通用模块 185.1系统登录实现 185.2系统退出实现 205.3用户信息修改 205.4用户密码修改 236.学院管理模块 256.1学院信息展示 256.2学院信息添加 276.3学院信息修改 286.4学院信息删除 307.专业管理模块 317.1专业信息展示 317.2专业信息添加 337.3专业信息修改 347.4专业信息删除 368.课程管理模块 378.1课程信息展示 378.2课程信息添加 398.3课程信息修改 408.4课程信息删除 419.班级管理模块 429.1班级信息展示 429.2班级信息添加 449.3班级信息修改 459.4班级信息删除 469.5上课安排 4710.学生管理模块 4810.1学生信息展示 4810.2学生信息添加 5210.3学生信息修改 5510.4学生信息删除 5710.5学生选课列表 5710.6学生选课记录 5911.教师管理模块 6011.1教师信息展示 6011.2教师信息添加 6311.3教师信息修改 6511.4教师信息删除 6711.5教师工作安排 6811.6授课学生查看 6912.选课管理模块 7212.1选课记录查询 7213.项目开发日志 7513.1关于登陆界面的背景加载问题 7514.系统使用手册 7615.选课管理系统自我评价 76

1.开发背景在现代教育体系中,选课是学生个性化学习的重要组成部分。然而,传统的选课方式通常依赖于纸质文档和手工操作,不仅效率低下,还容易出现信息记录不准确、数据统计困难等问题。此外,随着学生人数的增加和课程设置的多样化,手工选课管理已经无法满足高效、准确、灵活的需求。因此,开发一个高效、准确的选课管理系统显得尤为重要。本选课管理系统的开发旨在利用现代信息技术手段,简化选课流程,提高管理效率。系统基于Python的Django框架开发,使用SQLServer数据库进行数据存储和管理,前端采用HTML、CSS和JavaScript技术实现界面交互。Django框架的高扩展性和SQLServer数据库的高性能,使系统能够处理大量学生和课程数据,并提供实时的选课信息查询和统计功能。本选课管理系统的开发不仅提高了选课管理的效率和准确性,还为师生提供了便捷的操作平台,推动了教育信息化的发展进程。2.系统描述2.1需求描述学院每个学期都要开设一定的课程,学生根据自己的情况选课,选课结束后,需要给出学生课表,同时要把选课的学生名单提供给任课教师。以便进行期末成绩的录入。为该校开发一个选课管理系统,主要实现以下功能:教师管理:课程设置申请模块,可以增加新的课程信息(课程号,课程名称、学分课时、课程简介等信息),删除旧的课程信息,修改已有的课程信息;课程管理模块,可以实现期末成绩的录入和学生名单的打印。教务处管理:包括课程设置审批模块和教学安排模块。课程设置审批模块可以根据申请内容通过审批或拒绝申请。教学安排模块分为,选课结果管理,成绩单(学号、学生姓名、课程名称、成绩等信息)生成,并能统计选课人数、最高成绩、最低成绩、平均成绩和及格人数。学生管理:包括选课模块、学生课程表模块和成绩查询模块(可以查询本课程的最高成绩、平均成绩、最低成绩和名次)。系统管理:使用该系统的人员除了教务管理人员,还包括教师和学生。不同的身份对数据的操作权限不同。为了避免管理的混乱,需要针对不同的角色分别设计客户端应用程序,输入用户名和密码登陆系统后,进行相应的操作。2.2功能描述根据需求阶段的分析,我们可以大致确定系统需要包含的功能,在这里,我们将系统的功能分为三类,具体描述如下:通用功能,这是系统的基础功能,包含用户登陆、登出、个人信息编辑等,不管什么身份的用户都可以使用这些功能,而且用户必须登陆之后才可以进入到系统中进行相关的操作,如果账号或者密码输入错误,系统会给出对应的提示,无法进入到系统中;基础信息管理,这里包含对学院、专业、班级等内容的管理,这些是系统的基础功能,同时这些和其他内容密切相关,实现难度虽然不大,但是十分重要;选课处理,在这里管理员可以给教师安排工作,学生可以进行选课操作,同时学生选课之后,也可以通过选课记录信息了解自己的选课情况。2.3项目预览图示:登录界面如上,这是系统的登录页面,本次在static/images中存入江大图片,然后使用江大图片作为背景图,用户可以在这里输入自己的登陆信息。如上,这是系统的首页,在这里主要是展示一些系统的基础信息,包含开发的一些描述内容。如上,这是系统的数据展示界面,这里采用表格的方式将信息展示出来,同时提供了一些功能按钮,通过这些按钮可以实现对信息的编辑和处理。如上,在涉及到数据编辑和处理的时候,我们采用弹框的方式对内容进行编辑,在弹出的窗口中会呈现具体编辑数据的表单,并且在提交时会提醒是否成功修改。3.系统设计3.1角色分析根据系统的实际需要,系统中的用户被分为三类,即管理员、教师、学生,权限管理员>教师,学生,具体每类用户可以进行的操作可以参考上边这张图,了解系统用户的分类以及可以进行的操作,对于接下来实现相关的功能具有重要的意义。3.2开发工具介绍本次学生选课管理系统开发主要是在Windows系统下进行,采用支持跨平台的Java语言开发完成,所以项目开发完成之后,可以运行在任意开发环境下。本次开发我们用到的工具包括PyCharm、SQLServer、Vision,下边我们对他们进行简单的介绍。PyCharm,这是一款优秀的Python代码编辑器,和当下流行的IDEA编辑器出自同一家公司,这款编辑器不仅针对常见的代码高亮、智能补全等提供相关支持,同时对于Django等开发还提供相应的支持,可以大大提示开发效率SQLServer,一种项目开发中常用的关系型数据库,因为体积小、开源、免费、简单易学、安装简单等特点,深受开发人员的喜爱,是大多数互联网公司的首选,我们将系统中的数据统一存储到这个数据库中,然后借助程序将这些数据读取出来,显示在页面上。Vision,Office办公组件之一,安装之后,可以用来绘制相应的图形,帮助我们更好的理解系统的情况,建立对系统清晰的认识,是开发中最常使用的建模工具。3.3Python环境总结Python==3.11djangopyodbcmssql-django3.4开发技术介绍Python语言功能强大,可以运用在诸多方面,其中在Web开发方向也有一系列十分成功的应用,同时为了方便开发,提升开发效率出现了一系列的开发框架,其中Django就是一个典型的重量级选手,它帮助我们解决了开发中很多问题,比如模板、数据处理等等,这些使得我们只需要使用Django就可以完成大多数的开发任务。3.5项目结构图示:项目结构概览3.6项目开发流程3.6.1创建Django项目和应用#创建项目django-adminstartprojectprojectscdprojects#创建应用django-adminstartappapp3.6.2配置数据库在projects/settings.py中配置SQLServer数据库DATABASES={'default':{'ENGINE':'mssql','NAME':'class',#database_user'HOST':'','PORT':1433,'USER':'sa','PASSWORD':'root','OPTIONS':{'driver':'ODBCDriver17forSQLServer',#指定ODBC驱动},}}3.6.3定义模型在app/models.py中定义你的模型。例如,学生、教师、课程等:fromdjango.dbimportmodelsclassCharField(models.Field):

def__init__(self,max_length,*args,**kwargs):

self.max_length=max_length

super(CharField,self).__init__(max_length=max_length,*args,**kwargs)

defdb_type(self,connection):

return'char(%s)'%self.max_lengthclassColleges(models.Model):

id=models.CharField('学院编号',max_length=13,primary_key=True)

name=models.CharField('学院名称',max_length=20,null=False)

createTime=models.CharField('记录时间',db_column='create_time',max_length=19,null=False)

classMeta:

db_table='colleges'classMajors(models.Model):

id=models.CharField('专业编号',max_length=13,primary_key=True)

name=models.CharField('专业名称',max_length=20,null=False)

createTime=models.CharField('记录时间',db_column='create_time',max_length=19,null=False)

classMeta:

db_table='majors'classProjects(models.Model):

id=models.CharField('课程编号',max_length=13,primary_key=True)

name=models.CharField('课程名称',max_length=20,null=False)

createTime=models.CharField('记录时间',db_column='create_time',max_length=19,null=False)

classMeta:

db_table='projects'classGrades(models.Model):

id=models.CharField('年级编号',max_length=13,primary_key=True)

name=models.CharField('年级名称',max_length=20,null=False)

createTime=models.CharField('记录时间',db_column='create_time',max_length=19,null=False)

classMeta:

db_table='grades'classUsers(models.Model):

id=models.CharField('用户编号',max_length=13,primary_key=True)

userName=models.CharField('用户账号',db_column='user_name',max_length=32,null=False)

passWord=models.CharField('用户密码',db_column='pass_word',max_length=32,null=False)

name=models.CharField('用户姓名',max_length=20,null=False)

age=models.IntegerField('用户年龄',null=False)

gender=models.CharField('用户性别',max_length=4,null=False)

type=models.IntegerField('用户身份',null=False)

classMeta:

db_table='users'classStudents(models.Model):

user=models.OneToOneField(Users,on_delete=models.CASCADE,db_column="id",max_length=13,primary_key=True)

major=models.ForeignKey(Majors,on_delete=models.CASCADE,db_column="major_id",max_length=13)

college=models.ForeignKey(Colleges,on_delete=models.CASCADE,db_column="college_id",max_length=13)

grade=models.ForeignKey(Grades,on_delete=models.CASCADE,db_column="grade_id",max_length=13)

classMeta:

db_table='students'classTeachers(models.Model):

user=models.OneToOneField(Users,on_delete=models.CASCADE,db_column="id",max_length=13,primary_key=True)

record=models.CharField('教师学历',max_length=8,null=False)

phone=models.CharField('联系电话',max_length=11,null=False)

address=models.CharField('联系地址',max_length=32,null=False)

classMeta:

db_table='teachers'classWorkPalns(models.Model):

id=models.CharField('记录编号',max_length=13,primary_key=True)

teacher=models.ForeignKey(Teachers,on_delete=models.CASCADE,db_column="teacher_id",max_length=13,null=False)

grade=models.ForeignKey(Grades,on_delete=models.CASCADE,db_column="grade_id",max_length=13,null=False)

project=models.ForeignKey(Projects,on_delete=models.CASCADE,db_column="project_id",max_length=13,null=False)

classMeta:

db_table='work_palns'classSelectLogs(models.Model):

id=models.CharField('记录编号',max_length=13,primary_key=True)

student=models.ForeignKey(Students,on_delete=models.CASCADE,db_column="student_id",max_length=13,null=True)

workPaln=models.ForeignKey(WorkPalns,on_delete=models.CASCADE,db_column="plan_id",max_length=13,null=False)

classMeta:

db_table='select_logs'3.6.4迁移数据库运行以下命令来创建并应用迁移:pythonmanage.pymakemigrationsapppythonmanage.pymigrate3.6.5创建超级用户pythonmanage.pycreatesuperuser3.6.5注册模型到Admin在app/admin.py中注册你的模型:pythonfromdjango.contribimportadminfrom.modelsimportStudent,Teacher,Course,Enrollment#Registeryourmodelshere.admin.site.register(Student)admin.site.register(Teacher)admin.site.register(Course)admin.site.register(Enrollment)3.6.7创建视图和URL在app/views.py中创建视图(这一部分代码太多,在源代码中可见代码)在app/urls.py中定义URL路由:importapp.viewsfromdjango.urlsimportpathurlpatterns=[```]并在projects/urls.py中包含应用的URL:fromdjango.contribimportadminfromdjango.urlsimportpath,includeurlpatterns=[

path('admin/',admin.site.urls),

path('projects/',include('app.urls')),]3.6.8创建模板在pages/templates目录下创建对应的HTML模板文件。图示:HTML模板文件3.6.9运行服务器#在vscode/pycharm下打开项目文件,终端输入pythonmanage.pyrunserver用户网址访问:访问:8000/projects/login/查看本次项目构建的学生选课管理系统选择角色(管理员/教师/学生)输入账号密码登陆4.数据库设计4.1数据库分析通过之前的分析,我们对于学生选课系统有了一个比较清晰的认识,了解了系统中需要包含的功能和要求,为了使系统的数据可以正常的存取,在这里,我们对数据库的情况进行简单的分析。如上,这是系统的一些基础信息,包含专业、学院等等,这些是系统基础的内容,虽然包含的内容不多,但是十分重要。系统中的用户主要分为管理员、教师、学生三类,其中学生和教师包含一些特殊的功能,在这里,我们将用户的共有的信息保存在用户信息表中,学生和教师的独自的信息存储在单独的数据表中。这是选课记录的信息,其中包括了选课的学生、授课教师、授课班级等等,通过这张数据表一方面可以了解教师的工作安排情况,另一方面也可以了解学生的选课情况。4.2数据库概念设计这是我们使用Visio绘制的学生选课系统数据模型ER图,通过这张ER图,我们可以清晰的看到系统包括了专业、学院、班级这样一些实体,同时还可以看到每个实体包括的属性,这样我们对数据库的情况就有了一个大概的认识。4.3表结构说明通过之前的分析,我们确定了数据库的基本情况,然后借助相应的SQL语句完成了系统的创建工作,为了方便之后的理解,这里对数据库中表的结构做相关的介绍。(1)学院表colleges,用来存储学院信息,其中包括了学院名称、记录时间字段数据类型允许为NULL备注说明idvarchar(13)NO记录IDnamevarchar(20)NO学院名称create_timevarchar(19)NO记录时间(2)专业表majors,用来存储专业信息,其中包括了专业名称、记录时间字段数据类型允许为NULL备注说明idvarchar(13)NO记录IDnamevarchar(20)NO专业名称create_timevarchar(19)NO记录时间(3)年级表grades,用来存储年级信息,其中包括了年级名称、记录时间字段数据类型允许为NULL备注说明idvarchar(13)NO记录IDnamevarchar(20)NO年级名称create_timevarchar(19)NO记录时间(4)课程表Projects,用来存储课程信息,其中包括了课程名称、记录时间字段数据类型允许为NULL备注说明idvarchar(13)NO记录IDnamevarchar(20)NO课程名称create_timevarchar(19)NO记录时间(5)用户信息表users,用来存储用户信息,其中包括了用户账号、用户密码、用户身份等字段数据类型允许为NULL备注说明idchar(13)NO记录IDuser_namevarchar(32)NO用户账号pass_wordvarchar(32)NO用户密码namevarchar(20)NO用户姓名ageintNO用户年龄gendervarchar(2)NO用户性别typeintNO用户身份(6)学生表students,用来存储学生信息,其中包括了所在学院、所学专业等字段数据类型允许为NULL备注说明idvarchar(13)NO记录IDmajor_idvarchar(13)NO所学专业college_idvarchar(13)NO所在学院grade_idvarchar(13)NO所在年级(7)教师表teachers,用来存储教师信息,其中包括了联系电话、联系地址等字段数据类型允许为NULL备注说明idvarchar(13)NO记录IDrecordvarchar(10)NO学生学历phonevarchar(11)NO联系电话addressvarchar(64)NO联系地址(8)工作安排表work_plans,用来存储工作安排信息,其中包括了课程编号、班级编号等字段数据类型允许为NULL备注说明idvarchar(13)NO记录IDteacher_idvarchar(13)NO教师工号grade_idvarchar(13)NO班级编号project_idvarchar(13)NO课程编号(9)选课记录表select_logs,用来存储选课记录信息,其中包括了学生学号、课程编号等字段数据类型允许为NULL备注说明idvarchar(13)NO记录IDstudent_idvarchar(13)YES学生学号plan_idvarchar(13)NO计划编号4.4数据表关系(注意:这里仅展示了业务相关的数据表结构,框架自身包含的数据表并不在其中)为了方标了解数据库的具体情况,我们在这里绘制了一张数据库关系展示图,在这张图中详细展示了每个数据表以及它所包含的内容,同时把数据表之间的关系详细的罗列出来,对于了解数据表有极好的意义。5.系统通用模块5.1系统登录实现这是我们学生选课系统登录的页面和上述一样,当用户访问指定的登录地址时,可以看到这样一个页面,在这里正确的输入用户的登录凭证信息,经过系统判断之后,决定用户是否可以进入到系统中。<divclass="login-container"><divclass="login-body"><divclass="login-title">登录</div><divclass="login-form"><formname="loginForm"action=""class="fater-form"><divclass="fater-form-block"><inputtype="text"name="userName"placeholder="请输入登录账号"/></div><divclass="fater-form-block"><inputtype="password"name="passWord"placeholder="请输入登录密码"/></div><divclass="fater-form-block"><buttontype="button"id="loginFormBtn"class="fater-btnfater-btn-primaryfater-btn-block">登录</button></div></form></div></div></div>这是我们登录页面具体的HTML代码,在这里主要是提供了一个表单,需要用户输入自己的用户名和密码,点击其中的登录按钮之后,就可以向服务器发送一个登录请求了。defsys_login_view(request):returnrender(request,"login.html")defsys_login_data(request):userName=request.POST.get('userName')passWord=request.POST.get('passWord')user=models.Users.objects.filter(userName=userName)if(user.exists()):user=user.first()ifuser.passWord==passWord:login_user={'id':user.id,'userName':user.userName,'passWord':user.passWord,'name':,'age':user.age,'gender':user.gender,'type':user.type,}request.session["user"]=login_userreturnsuccess()else:returnwarn('用户密码输入错误')else:returnwarn('用户名输入错误')当用户点击登录按钮将填写的用户名和密码信息发送到服务器之后,在服务端会经过上述这段代码的处理,首先我们通过输入的用户名进行查找用户信息,然后再通过查找到的用户进行比对密码,中间任何一个步骤出现异常,都不会正常登录。5.2系统退出实现defsys_logout_view(request):delrequest.session["user"]returnHttpResponseRedirect('/projects/login')在系统中提供了供用户退出登录状态的功能,当用户点击退出登录按钮时,会发送一个退出登录的请求到服务端,服务端进行清除登录信息的操作并且跳转到登录页面,这样就完成了退出登录状态的功能。5.3用户信息修改如上所示,系统提供了供当前用户修改个人信息的功能,在这里可以将当前用户的信息呈现到表单中,方便对信息进行修改<divclass="updSessionInfoWinfater-model-winfater-model-hidden"><divclass="fater-model-win-head"><span>个人信息修改</span><span>×</span></div><divclass="fater-model-win-body"><formname="updSessionInfoForm"class="fater-form"><divclass="fater-form-item"><label>系统账号</label><inputtype="text"name="userName"placeholder="请输入用户账号"/></div><divclass="fater-form-item"><label>用户姓名</label><inputtype="text"name="name"placeholder="请输入学生姓名"/></div><divclass="fater-form-item"><label>用户年龄</label><inputtype="text"name="age"placeholder="请输入学生年龄"/></div><divclass="fater-form-item"><label>用户性别</label><inputtype="radio"name="gender"value="男"/>男<inputtype="radio"name="gender"value="女"/>女</div><inputtype="hidden"name="id"/><divclass="fater-form-btns"><buttontype="button"id="updSessionInfoFormBtn"class="fater-btnfater-btn-primary">提交</button><buttontype="reset"class="fater-btnfater-btn-normal">取消</button></div></form></div></div>供用户进行信息修改的页面,主要是一个HTML表单,它并不复杂,如上就是具体实现的HTML代码了,当用户点击修改按钮的时候,浏览器渲染页面,然后将这个修改信息的表单呈现用户面前。defsys_info_data(request):user=request.session.get('user')data=models.Users.objects.filter(id=user['id'])resl={}foritemindata:resl={'id':item.id,'userName':item.userName,'passWord':item.passWord,'name':,'age':item.age,'gender':item.gender,'type':item.type,}returnsuccessData(resl)defsys_info_form_data(request):user=request.session.get('user')models.Users.objects.filter(id=user['id']).update(userName=request.POST.get('userName'),name=request.POST.get('name'),age=request.POST.get('age'),gender=request.POST.get('gender'),)data=models.Users.objects.filter(id=user['id'])resl={}foritemindata:resl={'id':item.id,'userName':item.userName,'passWord':item.passWord,'name':,'age':item.age,'gender':item.gender,'type':item.type,}delrequest.session["user"]request.session["user"]=reslreturnsuccessData(user)当用户修改信息完成之后,点击页面中的提交按钮,可以将自己的信息发送到服务器,服务器中对这些信息进行处理,调用相关的修改用户信息方法,最终实现用户信息修改的功能。5.4用户密码修改如上所示,这是我们提供的供用户进行修改密码的界面,在这里登录用户可以修改自己的密码,需要注意的是,这里用户需要完全的输入正确的原始密码,并且两次确认无误之后才可以完成密码的修改工作。<divclass="updSessionPwdWinfater-model-winfater-model-hidden"><divclass="fater-model-win-head"><span>用户密码修改</span><span>×</span></div><divclass="fater-model-win-body"><formname="updSessionPwdForm"class="fater-form"><divclass="fater-form-item"><label>原始密码</label><inputtype="password"name="oldPwd"placeholder="请输入原始密码"/></div><divclass="fater-form-item"><label>修改密码</label><inputtype="password"name="newPwd"placeholder="请输入修改密码"/></div><divclass="fater-form-item"><label>确认密码</label><inputtype="password"name="repPwd"placeholder="请输入确认密码"/></div><inputtype="hidden"name="passWord"/><inputtype="hidden"name="id"/><divclass="fater-form-btns"><buttontype="button"id="updSessionPwdFormBtn"class="fater-btnfater-btn-primary">提交</button><buttontype="reset"class="fater-btnfater-btn-normal">取消</button></div></form></div></div>对于上边这个修改密码的功能界面,它主要是一个修改的表单,具体实现这个界面的代码如上所示,当用户点击修改按钮之后,经过浏览器的渲染,最终呈现给用户一个修改个人信息的功能页面。defsys_pwd_form_data(request):user=request.session.get('user')models.Users.objects.filter(id=user['id']).update(passWord=request.POST.get('password'),)data=models.Users.objects.filter(id=user['id'])resl={}foritemindata:resl={'id':item.id,'userName':item.userName,'passWord':item.passWord,'name':,'age':item.age,'gender':item.gender,'type':item.type,}delrequest.session["user"]request.session["user"]=reslreturnsuccessData(user)用户在完全正确的输入密码之后,点击提交按钮,修改的密码发送到服务器,服务器找到登录时记录的用户信息,然后修改对应的密码信息,并且修改登录中记录的用户信息,这样就完成了密码修改的操作。6.学院管理模块6.1学院信息展示如上所示,这是系统学院信息展示功能提供的页面,我们以表格的形式提供了数据分页显示的需求,同时在页面中还提供了进行数据编辑的功能,这里我们对实现它的具体过程进行详细的介绍。<divclass="fater-layout-body"><divclass="fater-panel"><divclass="fater-pannel-title">数据查询</div><divclass="fater-pannel-body"><divclass="fater-form-inline"><inputtype="text"name="para1"placeholder="请输入学院名称……"/></div><divclass="fater-form-inline"><buttontype="button"class="fater-btnfater-btn-form-qry"><spanclass="fafa-search"></span></button></div><divclass="clear"></div></div></div><divclass="fater-panel"><divclass="fater-pannel-title"><buttonevent="add"type="button"class="fater-btnfater-btn-primary"><spanstyle="color:#FFFFFF;"class="fafa-plus"></span></button></div><divclass="fater-pannel-body"><divid="tableShow"></div></div></div></div>如上所示,这是我们为了实现学院信息展示页面而提供的前端主要实现代码,在这里我们通过循环的方式将后台获取的数据显示到页面上,这样大家就看到了系统存储的学院信息数据。defcollege_data_page(request):pageIndex=request.GET.get('pageIndex',1)pageSize=request.GET.get('pageSize',10)name=request.GET.get('name')ifisExit(name):data=models.Colleges.objects.all().filter(name__contains=name).order_by("-createTime")else:data=models.Colleges.objects.all().order_by("-createTime")paginator=Paginator(data,pageSize)resl=[]foriteminlist(paginator.page(pageIndex)):temp={'id':item.id,'name':,'createTime':item.createTime}resl.append(temp)temp=parasePage(pageIndex,pageSize,paginator.page(pageIndex).paginator.num_pages,paginator.count,resl)returnsuccessData(temp)之所以我们可以在页面代码中,通过循环的方式将数据显示到页面上,这主要是因为当用户访问服务器的时候,会将查询学院信息的请求参数发送到服务端,在服务端有专门接受这类请求的控制器,而具体处理分页请求的代码如上,通过这段代码,我们接受了系统查询数据集合的参数,然后调用业务层相关的处理方法,再由业务层的相关项目代码调用数据处理层的代码,最终我们获取了符合要求的数据,将这些信息返回,经过渲染之后,呈现出来。6.2学院信息添加如上所示,这是我们提供的学院信息添加的页面,当点击页面上的操作按钮时,可以进入到这个页面中,在这里输入正确的信息,然后点击提交按钮就可以将数据添加到系统数据库中了。<divclass="addWinfater-model-winfater-model-hidden"><divclass="fater-model-win-head"><span>添加信息</span><span>×</span></div><divclass="fater-model-win-body"><formname="addForm"class="fater-form"><divclass="fater-form-item"><label>学院名称</label><inputtype="text"name="name"placeholder="请输入学院名称"/></div><divclass="fater-form-btns"><buttontype="button"id="addFormBtn"class="fater-btnfater-btn-primary">提交</button><buttontype="reset"class="fater-btnfater-btn-normal">取消</button></div></form></div></div>如上所示,这是具体的学院信息添加的处理页面主要代码,在这里我们设置了一个添加数据的表单,这些表单会随着用户的请求响应到客户端,经过渲染之后,就可以呈现在操作人员面前了。defcollege_data_add(request):models.Colleges.objects.create(id=int(time.time()),name=request.POST.get('name'),createTime=time.strftime("%Y-%m-%d%H:%M:%S",time.localtime()))returnsuccess()在填写完添加信息的具体内容之后,点击页面上的提交按钮,表单中的数据就被发送到服务端,在服务端有专门接受添加学院信息处理的控制器,经过它的解析之后,会调用相关的实现代码实现数据添加的功能。而上边这段代码就是具体的数据添加处理代码,这里我们先是获取了表单中的数据,然后调用了业务层的处理代码,之后再由业务层的处理代码调用数据处理层的代码,经过这样一系列的处理之后,我们将数据添加到项目中,当一切执行完成之后,系统给出响应内容,浏览器解析之后,呈现到用户面前。6.3学院信息修改如上所示,这是我们实现学院信息修改的页面,当用户点击修改按钮之后,可以进入到这个修改的页面,在这个页面中会先显示出要修改的内容,在进行编辑之后,点击提交按钮,就完成了数据的修改功能。<divclass="updWinfater-model-winfater-model-hidden"><divclass="fater-model-win-head"><span>修改信息</span><span>×</span></div><divclass="fater-model-win-body"><formname="updForm"class="fater-form"><divclass="fater-form-item"><label>学院名称</label><inputtype="text"name="name"placeholder="请输入学院名称"/></div><inputtype="hidden"name="id"/><divclass="fater-form-btns"><buttontype="button"id="updFormBtn"class="fater-btnfater-btn-primary">提交</button><buttontype="reset"class="fater-btnfater-btn-normal">取消</button></div></form></div></div>如上所示,这是我们具体的修改页面前端实现主要代码,在这里我们通过表单的形式,将后台获取的修改信息呈现出来,这样用户并不用输入要修改的信息,就可以直接进行编辑,提升用户体验。defcollege_data_upd(request):models.Colleges.objects.filter(id=request.POST.get('id')).update(name=request.POST.get('name'))returnsuccess()当用户编辑完之后,可以点击页面的提交按钮,将修改信息的内容提交到服务器,在服务端程序中包含了处理这类请求的控制器,这段代码就是具体负责学院信息修改的代码,在这里我们先获取了表单中修改的信息,然后通过要修改信息的主键获取到修改之前的内容,之后调用修改方法,完成数据的修改工作,最后会向用户响应一个结果,经过渲染之后,用户就看到了修改的结果。6.4学院信息删除图示:删除界面defcollege_data_del(request):ifmodels.Students.objects.filter(college__id=request.POST.get('id')).exists():returnwarn('学院学生未结业,无法删除')else:models.Colleges.objects.filter(id=request.POST.get('id')).delete()returnsuccess()在客户端点击删除按钮时,会将要删除信息的主键信息发送到服务端,服务端有专门负责处理这类请求的方法,具体代码如上所示,我们通过发送的主键,查询到具体要删除的内容,然后调用具体的相关的方法,这样就实现了数据的删除功能。7.专业管理模块7.1专业信息展示图示:专业信息界面如上所示,这是系统专业信息展示功能提供的页面,我们以表格的形式提供了数据分页显示的需求,同时在页面中还提供了进行数据编辑的功能,这里我们对实现它的具体过程进行详细的介绍。<divclass="fater-layout-body"><divclass="fater-panel"><divclass="fater-pannel-title">数据查询</div><divclass="fater-pannel-body"><divclass="fater-form-inline"><inputtype="text"name="para1"placeholder="请输入专业名称……"/></div><divclass="fater-form-inline"><buttontype="button"class="fater-btnfater-btn-form-qry"><spanclass="fafa-search"></span></button></div><divclass="clear"></div></div></div><divclass="fater-panel"><divclass="fater-pannel-title"><buttonevent="add"type="button"class="fater-btnfater-btn-primary"><spanstyle="color:#FFFFFF;"class="fafa-plus"></span></button></div><divclass="fater-pannel-body"><divid="tableShow"></div></div></div></div>如上所示,这是我们为了实现专业信息展示页面而提供的前端主要实现代码,在这里我们通过循环的方式将后台获取的数据显示到页面上,这样大家就看到了系统存储的专业信息数据。defmajor_data_page(request):pageIndex=request.GET.get('pageIndex',1)pageSize=request.GET.get('pageSize',10)name=request.GET.get('name')ifisExit(name):data=models.Majors.objects.all().filter(name__contains=name).order_by("-createTime")else:data=models.Majors.objects.all().order_by("-createTime")paginator=Paginator(data,pageSize)resl=[]foriteminlist(paginator.page(pageIndex)):temp={'id':item.id,'name':,'createTime':item.createTime}resl.append(temp)temp=parasePage(pageIndex,pageSize,paginator.page(pageIndex).paginator.num_pages,paginator.count,resl)returnsuccessData(temp)之所以我们可以在页面代码中,通过循环的方式将数据显示到页面上,这主要是因为当用户访问服务器的时候,会将查询专业信息的请求参数发送到服务端,在服务端有专门接受这类请求的控制器,而具体处理分页请求的代码如上,通过这段代码,我们接受了系统查询数据集合的参数,然后调用业务层相关的处理方法,再由业务层的相关项目代码调用数据处理层的代码,最终我们获取了符合要求的数据,将这些信息返回,经过渲染之后,呈现出来。7.2专业信息添加如上所示,这是我们提供的专业信息添加的页面,当点击页面上的操作按钮时,可以进入到这个页面中,在这里输入正确的信息,然后点击提交按钮就可以将数据添加到系统数据库中了。<divclass="addWinfater-model-winfater-model-hidden"><divclass="fater-model-win-head"><span>添加信息</span><span>×</span></div><divclass="fater-model-win-body"><formname="addForm"class="fater-form"><divclass="fater-form-item"><label>专业名称</label><inputtype="text"name="name"placeholder="请输入专业名称"/></div><divclass="fater-form-btns"><buttontype="button"id="addFormBtn"class="fater-btnfater-btn-primary">提交</button><buttontype="reset"class="fater-btnfater-btn-normal">取消</button></div></form></div></div>如上所示,这是具体的专业信息添加的处理页面主要代码,在这里我们设置了一个添加数据的表单,这些表单会随着用户的请求响应到客户端,经过渲染之后,就可以呈现在操作人员面前了。defmajor_data_add(request):models.Majors.objects.create(id=int(time.time()),name=request.POST.get('name'),createTime=time.strftime("%Y-%m-%d%H:%M:%S",time.localtime()))returnsuccess()在填写完添加信息的具体内容之后,点击页面上的提交按钮,表单中的数据就被发送到服务端,在服务端有专门接受添加专业信息处理的控制器,经过它的解析之后,会调用相关的实现代码实现数据添加的功能。而上边这段代码就是具体的数据添加处理代码,这里我们先是获取了表单中的数据,然后调用了业务层的处理代码,之后再由业务层的处理代码调用数据处理层的代码,经过这样一系列的处理之后,我们将数据添加到项目中,当一切执行完成之后,系统给出响应内容,浏览器解析之后,呈现到用户面前。7.3专业信息修改如上所示,这是我们实现专业信息修改的页面,当用户点击修改按钮之后,可以进入到这个修改的页面,在这个页面中会先显示出要修改的内容,在进行编辑之后,点击提交按钮,就完成了数据的修改功能。<divclass="updWinfater-model-winfater-model-hidden"><divclass="fater-model-win-head"><span>修改信息</span><span>×</span></div><divclass="fater-model-win-body"><formname="updForm"class="fater-f

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论