基于Python的网络课程平台开发 计算机毕业设计源码71633
随着互联网技术的不断发展和教育需求的日益增长,在线教育成为了当今社会的一种重要学习方式。基于Python的网络课程平台开发旨在为学生、教师和管理员提供一个高效、便捷、互动的学习与管理环境。本论文设计并实现了一个基于Python技术的网络课程平台,平台集成了课程管理、作业管理、学习分析、选课记录和交流互动等多种功能,旨在提升学习效率、促进师生之间的互动以及优化平台的管理工作。
平台采用了Python语言及其相关技术栈,包括Django作为后端开发框架,MySQL数据库进行数据存储,前端通过HTML、CSS和JavaScript实现。该平台面向三类主要用户:学生、教师和管理员。学生可以通过平台浏览课程信息、选择课程、提交作业、参与论坛讨论,并通过学习分析功能了解自己的学习进度和成绩。教师则能够管理课程内容、发布作业、批改作业,并通过学习分析管理学生的学习效果。管理员负责平台的日常维护、用户管理、课程信息管理、公告发布等工作,确保平台的正常运行。
通过实际开发和测试,本平台能够有效地支持在线教育活动,提升学生的学习体验,帮助教师进行课堂管理,并为管理员提供便捷的后台管理功能。平台的设计与实现展示了Python在构建现代教育平台中的优势,并为在线教育系统的进一步发展提供了实践参考。
关键词:课程管理;Python语言;网络课程平台;在线教育
ABSTRACT
With the continuous development of Internet technology and the growing demand for education, online education has become an important way of learning in today's society. The development of a Python based online course platform aims to provide an efficient, convenient, and interactive learning and management environment for students, teachers, and administrators. This paper designs and implements an online course platform based on Python technology, which integrates various functions such as course management, homework management, learning analysis, course selection records, and communication interaction. The platform aims to improve learning efficiency, promote interaction between teachers and students, and optimize platform management.
The platform adopts Python language and its related technology stack, including Django as the backend development framework, MySQL database for data storage, and front-end implementation through HTML, CSS, and JavaScript. This platform is aimed at three main types of users: students, teachers, and administrators. Students can browse course information, select courses, submit assignments, participate in forum discussions, and understand their learning progress and grades through the learning analysis function on the platform. Teachers can manage course content, publish assignments, grade assignments, and manage students' learning outcomes through learning analysis. Administrators are responsible for the daily maintenance, user management, course information management, and announcement publishing of the platform to ensure its normal operation.
Through actual development and testing, this platform can effectively support online educational activities, enhance students' learning experience, assist teachers in classroom management, and provide convenient backend management functions for administrators. The design and implementation of the platform demonstrate the advantages of Python in building modern education platforms and provide practical references for the further development of online education systems.
Keywords:Course management; Python language; Online course platform; Online education
目 录
1 绪论
随着信息技术的迅速发展,尤其是互联网的广泛应用,传统教育模式正经历着前所未有的变革。在线教育作为这一变革的重要组成部分,近年来在全球范围内取得了显著的发展。尤其是在新冠疫情爆发后,在线教育需求激增,越来越多的教育机构、学校以及培训机构开始转向线上授课和学习,促使教育行业发生了深刻的转型。在这一背景下,开发一个高效、便捷、功能全面的网络课程平台成为了提升教育质量、满足学生需求的重要手段。
基于Python的网络课程平台开发正是为了应对这一需求而提出的。Python作为一种简单易学、功能强大的编程语言,在数据处理、网络编程和Web开发等领域具有显著优势。通过Python技术的应用,可以构建出一个高效、灵活且易于扩展的网络课程平台。平台能够为学生、教师和管理员提供丰富的功能支持,包括课程信息管理、作业提交与批改、学习进度分析、选课记录查看等,全面提升学习效率和教学管理的便利性。
本平台的开发具有重要的社会意义和实践意义。对于学生而言,平台提供了一个灵活的学习环境,使他们能够在任何时间、任何地点进行自主学习,突破了传统课堂的限制;对于教师而言,平台简化了教学管理流程,使他们能够更加高效地发布课程内容、布置作业、跟踪学生进度,甚至进行个性化教学;对于平台管理员而言,系统化的管理功能能够有效地实现用户、课程及资源的高效管理,确保平台的稳定运行。
通过基于Python的网络课程平台的开发,不仅能满足当前在线教育市场的需求,还能够推动教育信息化进程,促进教育公平和教育资源的共享。因此,开发一个功能完善、操作便捷的网络课程平台,对现代教育的创新发展具有深远意义。
1.2国内外研究现状
随着互联网技术的不断发展,在线教育逐渐成为全球教育行业的重要组成部分。尤其是近年来,在线课程平台的应用在全球范围内得到了广泛推广和深入发展[1]。国内外关于网络课程平台的研究和实践经历了不断的探索与创新,学者们和开发者们通过多年的积累,不断完善和优化平台的功能和服务,以期提供更好的学习体验和管理效能。
在国外,在线教育的发展较为成熟,许多知名平台如Coursera、edX、Udemy等早已成为全球教育市场的重要玩家[2]。这些平台通过网络技术实现了优质教育资源的共享,吸引了来自全球各地的学生和教育机构的参与。国外研究主要集中在如何提升在线课程的互动性、个性化学习以及平台的智能化管理等方面[3]。例如,Coursera采用了个性化推荐系统,能够根据学生的学习行为和兴趣推送适合的课程;edX则注重学习数据分析和学习路径规划,帮助学生在学习过程中获得更高效的成果[4]。此外,国外的一些研究还集中在如何优化在线教育平台的用户体验、提高平台的可用性和安全性等技术性问题[5]。
在国内,网络课程平台的研究起步较晚,但随着移动互联网和智能终端的普及,国内在线教育迅速发展[6]。各大高校和教育公司纷纷开设自己的网络课程平台,如学堂在线、网易云课堂、腾讯课堂等,形成了一个日益竞争激烈的市场。国内的研究大多集中在如何结合中国本土的教育需求与特点,设计和开发适应本国市场的在线课程平台[7]。国内研究者普遍关注平台的课程管理、学习行为分析、作业批改和互动教学等方面,许多学者提出了多种基于数据挖掘和人工智能的个性化学习方法,力求提高学习的效率和质量。
目前,尽管国内外已有一些较为成熟的网络课程平台,但仍然存在一定的技术挑战和优化空间。例如,在线教育平台的个性化学习和智能化管理仍然是亟待解决的问题,如何通过数据分析对学生的学习进度和行为进行精准分析,进而提供定制化的教学服务,是一个当前研究的热点。此外,平台的互动性、学习者的参与感和教师的教学支持也在不断改进中,尤其是在线课程的互动性和实时性,这对于提升学习者的学习兴趣和课程的吸引力至关重要。
总体而言,国内外关于基于Python的网络课程平台的研究和实践不断深化,尽管已经取得了一定的成果,但随着教育需求的变化和技术的不断进步,仍有许多领域需要进一步探索和创新。基于Python技术的网络课程平台因其高效的开发能力和良好的扩展性,已经成为在线教育领域的热门选择。
1.3论文组成结构
第一章是绪论,本文章的开头部分,对本题目的研究背景和研究意义等一些做文字性的描述。
第二章研究了网络课程平台的所采用的开发技术和开发工具。
第三章是系统分析部分,包括系统总体需求描述、功能性角度分析系统需求、非功能性等各个方面分析系统是否可以实现。
第四章是系统设计部分,本文章的重要部分,提供了系统架构的详细设计和一些主要功能模块的设计说明。
第五章是系统的具体实现,介绍系统的各个模块的具体实现。
第六章在前几章的基础上对系统进行测试和运行。
最后对系统进行了认真的总结,以此对未来有一个新的展望。
2.1 MVVM模式介绍
MVVM是Model-View-ViewModel的简写。它本质上就是MVC 的改进版。MVVM 就是将其中的View 的状态和行为抽象化,让我们将视图 UI 和业务逻辑分开。当然这些事 ViewModel 已经帮我们做了,它可以取出 Model 的数据同时帮忙处理 View 中由于需要展示内容而涉及的业务逻辑。微软的WPF带来了新的技术体验,如Silverlight、音频、视频、3D、动画……,这导致了软件UI层更加细节化、可定制化。同时,在技术层面,WPF也带来了 诸如Binding、Dependency Property、Routed Events、Command、DataTemplate、ControlTemplate等新特性。MVVM(Model-View-ViewModel)框架的由来便是MVP(Model-View-Presenter)模式与WPF结合的应用方式时发展演变过来的一种新型架构框架。它立足于原有MVP框架并且把WPF的新特性糅合进去,以应对客户日益复杂的需求变化。
2.2 Django框架
Django是一个由Python编写的具有完整架站能力的开源Web框架。使用Django,只要很少的代码,Python的程序开发人员就可以轻松地完成一个正式网站所需要的大部分内容,并进一步开发出全功能的Web服务。
Django本身基于MVC模型,即Model(模型)+View(视图)+ Controller(控制器)设计模式,因此天然具有MVC的出色基因:开发快捷、部署方便、可重用性高、维护成本低等。Python加Django是快速开发、设计、部署网站的最佳组合。
Django具有以下特点:
能完善、要素齐全:该有的、可以没有的都有,常用的、不常用的工具都用。Django提供了大量的特性和工具,无须你自己定义、组合、增删及修改。
完善的文档:经过十多年的发展和完善,Django有广泛的实践经验和完善的在线文档(可惜大多数为英文)。开发者遇到问题时可以搜索在线文档寻求解决方案。
强大的数据库访问组件:Django的Model层自带数据库ORM组件,使得开发者无须学习其他数据库访问技术(SQL、pymysql、SQLALchemy等)。
灵活的URL映射:Django使用正则表达式管理URL映射,灵活性高。
丰富的Template模板语言:类似jinjia模板语言,不但原生功能丰富,还可以自定义模板标签。
Vue.js是一套构建用户界面的渐进式框架。与其他重量级框架不同的是,Vue采用自底向上增量开发的设计。Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合。另一方面,Vue 完全有能力驱动采用单文件组件和Vue生态系统支持的库开发的复杂单页应用。
Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。
Vue.js 自身不是一个全能框架——它只聚焦于视图层。因此它非常容易学习,非常容易与其它库或已有项目整合。另一方面,在与相关工具和支持库一起使用时,Vue.js 也能驱动复杂的单页应用。
2.4 Python语言
在网络课程平台的开发中,使用到的关键技术是Python语言。Python作为一种高级、通用、解释型编程语言,具有简洁、易读、易学的特点,适合快速开发和易维护。在系统开发过程中,Python语言的灵活性和丰富的库能够快速实现各种功能模块,处理复杂业务逻辑,同时能够保证系统的稳定性和可扩展性。Python语言也具有较高的社区活跃度和开发资源,为系统的持续优化和升级提供了可靠的基础。通过使用Python语言,网络课程平台能够快速、高效地实现各项功能需求,满足系统的核心要求。
3.1 系统可行性分析
3.1.1技术可行性
网络课程平台系统具有显著的技术可行性。Django作为成熟、稳定的Web开发框架,提供了丰富的功能和灵活的扩展性,能够支撑复杂的数据处理、算法实现和用户交互需求。Django的社区支持广泛,拥有丰富的资源和文档,为系统的开发和维护提供了有力保障。因此,从技术角度来看,利用Django实现网络课程平台是完全可行的。
在网络课程平台开发之前所做的市场调研及其他的相关的系统,都是没有任何费用的,都是通过开发者自己的努力,所有的工作的都是自己亲力亲为,在碰到自己比较难以解决的问题,大多是通过同学和指导老师的帮助进行相关信息的解决,所以对于网络课程平台的开发在经济上是完全可行的,没有任何费用支出的。
使用比较成熟的技术,系统是基于django的开发,采用Mysql数据库。所以系统在开发人力、财力要求不高,具有经济可行性。
可操作性主要是对网络课程平台设计完成后,用户的使用体验度,以及管理员可以通过系统随时管理相关的数据信息,并且对于管理员、学生用户、教师用户这三个用户角色,都可以简单明了的进入到自己的系统界面,通过界面导航菜单可以简单明了地操作功能模块,方便用户信息的操作需求和管理员管理数据信息,对于系统的操作,不需要专业人员都可以直接进行功能模块的操作管理,所以在系统的可操作性是完全可以的。本系统的操作使用的也是界面窗口进行登录,所以操作人员只要会简单的电脑操作就完全可以的。
3.2 系统功能分析
网络课程平台中采用了Python的Django框架进行开发,在数据库上选择MYSQL,在功能上网络课程平台划分为了学生用户、教师用户和和管理员这三大部分。功能需求分析如下:
(一)学生用户功能介绍:
首页:学生登录后,进入平台首页,帮助学生快速了解平台内容和自己在平台上的活动。
交流论坛:论坛为学生提供了一个与同学、教师互动的空间。学生可以在这里讨论课程内容、分享学习经验、提问和回答问题,促进师生与学生之间的互动和知识分享。
通知公告:学生可以查看平台发布的通知和公告,如课程安排、考试信息、平台活动等,确保学生及时了解重要信息。
课程资讯:提供与课程相关的最新资讯,包括课程更新、讲座、教学活动等,学生可以随时获取课程的最新动态。
课程信息:学生可以浏览平台上提供的所有课程信息,查看课程简介、教师介绍、课程安排等内容,方便选择感兴趣的课程。
我的账户:学生可以在“我的账户”中查看个人信息,修改密码等,确保账户安全和个人资料的准确性。
个人中心
个人首页:展示学生的基本信息、学习进度和成绩。
选课记录:查看自己已选课程的信息,包括课程内容和学习进度。
作业信息:查看作业任务、提交情况、成绩反馈等。
学习分析:提供学习数据分析,帮助学生了解自己的学习进展和优劣势。
收藏:学生可以收藏感兴趣的课程、资源或文章,方便日后访问。
评论管理:查看和管理自己在课程、作业等模块中的评论和反馈。
- 教师用户功能介绍:
后台首页:教师登录后进入平台后台首页,展示个人课程的概况、学生学习进度、作业批改情况等,帮助教师快速掌握教学和管理信息。
课程信息管理:教师可以创建、编辑和管理课程信息,包括课程大纲、内容安排、教学资源等,确保课程内容的完整与更新。
选课记录管理:教师可以查看自己课程的学生选课情况,了解学生的学习状态,便于及时调整教学计划。
作业信息管理:教师可以发布和管理作业任务,设置作业内容、截止时间、评分标准等,并批改学生作业,提供反馈与评分。
学习分析管理:教师可以查看学生的学习进度和成绩分析,帮助识别学习困难的学生,并优化教学方法,提高教学效果。
(三)管理员功能介绍:
后台首页:管理员登录后进入平台后台首页,首页展示了平台的整体数据概况,如用户数量、课程数量、作业统计等,便于管理员快速了解平台的运营状况。
系统用户:管理员可以管理平台的所有用户,包括学生、教师和其他管理员。可以查看、编辑或删除用户信息,并设置用户权限。
课程信息管理:管理员负责平台上所有课程的管理,包括课程创建、编辑、删除、课程内容更新等,确保课程信息的准确性和及时更新。
课程分类管理:管理员可以对课程进行分类管理,设置不同的课程类别,方便学生浏览和选择合适的课程。
选课记录管理:管理员可以查看和管理学生的选课记录,了解学生的选课情况、课程人数等,支持课程的优化和调整。
作业信息管理:管理员可以管理平台上的作业信息,包括作业的发布、修改、删除等,并对作业的评分标准和提交情况进行监督。
学习分析管理:管理员可以查看全平台的学习数据分析,帮助管理员了解课程的学习效果、学生的学习状态等,为平台优化提供数据支持。
系统管理(轮播图):管理员可以管理平台首页的轮播图,设置平台的重要公告或活动,以吸引学生的注意力。
通知公告管理:管理员可以发布平台的通知和公告,向所有用户传达重要信息,如课程安排、考试时间等。
资源管理(课程资讯、资讯分类):管理员可以管理平台上的课程资讯,上传和编辑课程相关资料,并对资讯进行分类,便于学生查阅。
交流管理:管理员可以管理平台上的交流功能,包括论坛和讨论区,监督并管理学生和教师的互动,确保平台内的交流内容健康、规范。
3.3系统用例分析
系统的用例展示的是系统功能与用户之间的关系,通过用例的方式能够直观的展示出来,本网络课程平台的完整UML用例图分别是图3-1、图3-2和图3-3。
图3-1 网络课程平台学生用户角色用例图
图3-2 网络课程平台教师用户角色用
图3-3 网络课程平台管理员角色用
3.4系统流程分析
3.4.1登录流程
图3-4登录流程图
3.4.2添加信息流程
添加信息流程图,如下图所示:
图3-5添加信息流程图
3.4.3删除信息流程
删除信息流程图,如下图所示:
图3-6删除信息流程图
3.4.4系统操作流程
系统操作流程图,如下图所示:
图3-7系统操作流程图
4.1系统设计的原理
系统设计原理包括:
- 模块化。模块化就是把整个程序划分为多个模块,每个模块有自己的名字并可以被独立访问。所有模块的功能集合起来就可以满足用户需求。
- 抽象。抽象是暂时忽略软件的细节,集中精力将软件的本质特征提取出来。
- 逐步求精。总体设计需要先解决主要问题,再将问题一步步细化。
- 局部化和信息隐藏。不同模块之间,信息相互不能访问,是不能访问的;并且应该在相近的物理地址上放置关系较密切的软件元素。
- 模块独立。模块之间应该遵循高内聚,低耦合的原则。
4.2系统功能设计
系统的功能结构图如下所示。
图4-1系统功能结构图
4.3数据库设计
数据库设计(DatabaseDesign)是指对一个给定的环境,构造良好的数据库模式,建立数据库系统,使之能够最有效地存储数据,满足各类用户的需求即处理要求和信息要求。在数据库应用范围内,经常把使用数据库的系统称为数据库的应用系统。
4.3.1概念模型设计
E-R设计方法是一种通过E-R图来描述现实世界信息结构的DB设计方法。E-R图由实体、属性、联系三部分组成。它有两个优点,即接近于人的思维,容易理解;与计算机无关,用户容易接受。
系统的主要实体间关系E-R图如下图所示:
图4-2系统E-R图
实体间可建立某种联系,大致可分为三种:(1)实体间一对一联系,这种关系可以独立也可与其他合并;(2)实体间是一对多联系,实体与另一个n端实体发生联系;(3)实体间为多对多联系,两个实体间存在某种关系。每个实体上码所具有的属性就是关系属性,实体码的组合就是关系码。
4.3.2逻辑结构设计
根据E-R模型,网络课程平台建立了以下逻辑数据结构,下面是各数据表的详细说明。
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
token_id |
int |
10 |
0 |
N |
Y |
临时访问牌ID |
|
|
2 |
token |
varchar |
64 |
0 |
Y |
N |
临时访问牌 |
|
|
3 |
info |
text |
65535 |
0 |
Y |
N |
||
|
4 |
maxage |
int |
10 |
0 |
N |
N |
2 |
最大寿命:默认2小时 |
|
5 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
6 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
7 |
user_id |
int |
10 |
0 |
N |
N |
0 |
用户编号: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
article_id |
mediumint |
8 |
0 |
N |
Y |
文章id:[0,8388607] |
|
|
2 |
title |
varchar |
125 |
0 |
N |
Y |
标题:[0,125]用于文章和html的title标签中 |
|
|
3 |
type |
varchar |
64 |
0 |
N |
N |
0 |
文章分类:[0,1000]用来搜索指定类型的文章 |
|
4 |
hits |
int |
10 |
0 |
N |
N |
0 |
点击数:[0,1000000000]访问这篇文章的人次 |
|
5 |
praise_len |
int |
10 |
0 |
N |
N |
0 |
点赞数 |
|
6 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
7 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
8 |
source |
varchar |
255 |
0 |
Y |
N |
来源:[0,255]文章的出处 |
|
|
9 |
url |
varchar |
255 |
0 |
Y |
N |
来源地址:[0,255]用于跳转到发布该文章的网站 |
|
|
10 |
tag |
varchar |
255 |
0 |
Y |
N |
标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开 |
|
|
11 |
content |
longtext |
2147483647 |
0 |
Y |
N |
正文:文章的主体内容 |
|
|
12 |
img |
varchar |
255 |
0 |
Y |
N |
封面图 |
|
|
13 |
description |
text |
65535 |
0 |
Y |
N |
文章描述 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
type_id |
smallint |
5 |
0 |
N |
Y |
分类ID:[0,10000] |
|
|
2 |
display |
smallint |
5 |
0 |
N |
N |
100 |
显示顺序:[0,1000]决定分类显示的先后顺序 |
|
3 |
name |
varchar |
16 |
0 |
N |
N |
分类名称:[2,16] |
|
|
4 |
father_id |
smallint |
5 |
0 |
N |
N |
0 |
上级分类ID:[0,32767] |
|
5 |
description |
varchar |
255 |
0 |
Y |
N |
描述:[0,255]描述该分类的作用 |
|
|
6 |
icon |
text |
65535 |
0 |
Y |
N |
分类图标: |
|
|
7 |
url |
varchar |
255 |
0 |
Y |
N |
外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置 |
|
|
8 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
9 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
auth_id |
int |
10 |
0 |
N |
Y |
授权ID: |
|
|
2 |
user_group |
varchar |
64 |
0 |
Y |
N |
用户组: |
|
|
3 |
mod_name |
varchar |
64 |
0 |
Y |
N |
模块名: |
|
|
4 |
table_name |
varchar |
64 |
0 |
Y |
N |
表名: |
|
|
5 |
page_title |
varchar |
255 |
0 |
Y |
N |
页面标题: |
|
|
6 |
path |
varchar |
255 |
0 |
Y |
N |
路由路径: |
|
|
7 |
parent |
varchar |
64 |
0 |
Y |
N |
父级菜单 |
|
|
8 |
parent_sort |
int |
10 |
0 |
N |
N |
0 |
父级菜单排序 |
|
9 |
position |
varchar |
32 |
0 |
Y |
N |
位置: |
|
|
10 |
mode |
varchar |
32 |
0 |
N |
N |
_blank |
跳转方式: |
|
11 |
add |
tinyint |
3 |
0 |
N |
N |
1 |
是否可增加: |
|
12 |
del |
tinyint |
3 |
0 |
N |
N |
1 |
是否可删除: |
|
13 |
set |
tinyint |
3 |
0 |
N |
N |
1 |
是否可修改: |
|
14 |
get |
tinyint |
3 |
0 |
N |
N |
1 |
是否可查看: |
|
15 |
field_add |
text |
65535 |
0 |
Y |
N |
添加字段: |
|
|
16 |
field_set |
text |
65535 |
0 |
Y |
N |
修改字段: |
|
|
17 |
field_get |
text |
65535 |
0 |
Y |
N |
查询字段: |
|
|
18 |
table_nav_name |
varchar |
500 |
0 |
Y |
N |
跨表导航名称: |
|
|
19 |
table_nav |
varchar |
500 |
0 |
Y |
N |
跨表导航: |
|
|
20 |
option |
text |
65535 |
0 |
Y |
N |
配置: |
|
|
21 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
22 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
code_token_id |
int |
10 |
0 |
N |
Y |
||
|
2 |
token |
varchar |
255 |
0 |
Y |
N |
||
|
3 |
code |
varchar |
255 |
0 |
Y |
N |
验证码 |
|
|
4 |
expire_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
失效时间 |
|
5 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
6 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
collect_id |
int |
10 |
0 |
N |
Y |
收藏ID: |
|
|
2 |
user_id |
int |
10 |
0 |
N |
N |
0 |
收藏人ID: |
|
3 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: |
|
|
4 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: |
|
|
5 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
|
6 |
title |
varchar |
255 |
0 |
Y |
N |
标题: |
|
|
7 |
img |
varchar |
255 |
0 |
Y |
N |
封面: |
|
|
8 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
9 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
comment_id |
int |
10 |
0 |
N |
Y |
评论ID: |
|
|
2 |
user_id |
int |
10 |
0 |
N |
N |
0 |
评论人ID: |
|
3 |
reply_to_id |
int |
10 |
0 |
N |
N |
0 |
回复评论ID:空为0 |
|
4 |
content |
longtext |
2147483647 |
0 |
Y |
N |
内容: |
|
|
5 |
nickname |
varchar |
255 |
0 |
Y |
N |
昵称: |
|
|
6 |
avatar |
varchar |
255 |
0 |
Y |
N |
头像地址:[0,255] |
|
|
7 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
8 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
9 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: |
|
|
10 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: |
|
|
11 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
course_classification_id |
int |
10 |
0 |
N |
Y |
课程分类ID |
|
|
2 |
course_classification |
varchar |
64 |
0 |
Y |
N |
课程分类 |
|
|
3 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
4 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
course_information_id |
int |
10 |
0 |
N |
Y |
课程信息ID |
|
|
2 |
course_name |
varchar |
64 |
0 |
Y |
N |
课程名称 |
|
|
3 |
course_classification |
varchar |
64 |
0 |
Y |
N |
课程分类 |
|
|
4 |
courseware_materials |
varchar |
255 |
0 |
Y |
N |
课件资料 |
|
|
5 |
course_video |
varchar |
255 |
0 |
Y |
N |
课程视频 |
|
|
6 |
release_date |
date |
10 |
0 |
Y |
N |
发布日期 |
|
|
7 |
teacher_users |
int |
10 |
0 |
Y |
N |
0 |
教师用户 |
|
8 |
course_cover |
varchar |
255 |
0 |
Y |
N |
课程封面 |
|
|
9 |
course_introduction |
longtext |
2147483647 |
0 |
Y |
N |
课程介绍 |
|
|
10 |
hits |
int |
10 |
0 |
N |
N |
0 |
点击数 |
|
11 |
praise_len |
int |
10 |
0 |
N |
N |
0 |
点赞数 |
|
12 |
collect_len |
int |
10 |
0 |
N |
N |
0 |
收藏数 |
|
13 |
comment_len |
int |
10 |
0 |
N |
N |
0 |
评论数 |
|
14 |
examine_state |
varchar |
16 |
0 |
N |
N |
未审核 |
审核状态 |
|
15 |
examine_reply |
varchar |
16 |
0 |
Y |
N |
审核回复 |
|
|
16 |
recommend |
int |
10 |
0 |
N |
N |
0 |
智能推荐 |
|
17 |
homework_submission_limit_times |
int |
10 |
0 |
N |
N |
0 |
选课限制次数 |
|
18 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
19 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
forum_id |
mediumint |
8 |
0 |
N |
Y |
论坛id |
|
|
2 |
display |
smallint |
5 |
0 |
N |
N |
100 |
排序 |
|
3 |
user_id |
mediumint |
8 |
0 |
N |
N |
0 |
用户ID |
|
4 |
nickname |
varchar |
16 |
0 |
Y |
N |
昵称:[0,16] |
|
|
5 |
praise_len |
int |
10 |
0 |
Y |
N |
0 |
点赞数 |
|
6 |
hits |
int |
10 |
0 |
N |
N |
0 |
访问数 |
|
7 |
title |
varchar |
125 |
0 |
N |
N |
标题 |
|
|
8 |
keywords |
varchar |
125 |
0 |
Y |
N |
关键词 |
|
|
9 |
description |
varchar |
255 |
0 |
Y |
N |
描述 |
|
|
10 |
url |
varchar |
255 |
0 |
Y |
N |
来源地址 |
|
|
11 |
tag |
varchar |
255 |
0 |
Y |
N |
标签 |
|
|
12 |
img |
text |
65535 |
0 |
Y |
N |
封面图 |
|
|
13 |
content |
longtext |
2147483647 |
0 |
Y |
N |
正文 |
|
|
14 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
15 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
16 |
avatar |
varchar |
255 |
0 |
Y |
N |
发帖人头像: |
|
|
17 |
type |
varchar |
64 |
0 |
N |
N |
0 |
论坛分类:[0,1000]用来搜索指定类型的论坛帖 |
|
18 |
istop |
int |
10 |
0 |
N |
N |
0 |
是否置顶 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
type_id |
smallint |
5 |
0 |
N |
Y |
分类ID:[0,10000] |
|
|
2 |
name |
varchar |
16 |
0 |
N |
N |
分类名称:[2,16] |
|
|
3 |
description |
varchar |
255 |
0 |
Y |
N |
描述:[0,255]描述该分类的作用 |
|
|
4 |
url |
varchar |
255 |
0 |
Y |
N |
外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置 |
|
|
5 |
father_id |
smallint |
5 |
0 |
N |
N |
0 |
上级分类ID:[0,32767] |
|
6 |
icon |
varchar |
255 |
0 |
Y |
N |
分类图标: |
|
|
7 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
8 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
hits_id |
int |
10 |
0 |
N |
Y |
点赞ID: |
|
|
2 |
user_id |
int |
10 |
0 |
N |
N |
0 |
点赞人: |
|
3 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
4 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
5 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: |
|
|
6 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: |
|
|
7 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
homework_information_id |
int |
10 |
0 |
N |
Y |
作业信息ID |
|
|
2 |
course_name |
varchar |
64 |
0 |
Y |
N |
课程名称 |
|
|
3 |
course_classification |
varchar |
64 |
0 |
Y |
N |
课程分类 |
|
|
4 |
teacher_users |
int |
10 |
0 |
Y |
N |
0 |
教师用户 |
|
5 |
student_users |
int |
10 |
0 |
Y |
N |
0 |
学生用户 |
|
6 |
student_name |
varchar |
64 |
0 |
Y |
N |
学生姓名 |
|
|
7 |
student_id |
varchar |
64 |
0 |
Y |
N |
学生学号 |
|
|
8 |
homework_attachment |
varchar |
255 |
0 |
Y |
N |
作业附件 |
|
|
9 |
homework_notes |
text |
65535 |
0 |
Y |
N |
作业备注 |
|
|
10 |
teacher_grading |
double |
9 |
2 |
Y |
N |
0.00 |
教师打分 |
|
11 |
correction_content |
text |
65535 |
0 |
Y |
N |
批改内容 |
|
|
12 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
13 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
14 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表 |
|
|
15 |
source_id |
int |
10 |
0 |
Y |
N |
来源ID |
|
|
16 |
source_user_id |
int |
10 |
0 |
Y |
N |
来源用户 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
homework_submission_id |
int |
10 |
0 |
N |
Y |
选课记录ID |
|
|
2 |
course_name |
varchar |
64 |
0 |
Y |
N |
课程名称 |
|
|
3 |
course_classification |
varchar |
64 |
0 |
Y |
N |
课程分类 |
|
|
4 |
teacher_users |
int |
10 |
0 |
Y |
N |
0 |
教师用户 |
|
5 |
student_users |
int |
10 |
0 |
Y |
N |
0 |
学生用户 |
|
6 |
student_name |
varchar |
64 |
0 |
Y |
N |
学生姓名 |
|
|
7 |
student_id |
varchar |
64 |
0 |
Y |
N |
学生学号 |
|
|
8 |
course_selection_date |
date |
10 |
0 |
Y |
N |
选课日期 |
|
|
9 |
course_selection_content |
text |
65535 |
0 |
Y |
N |
选课内容 |
|
|
10 |
homework_information_limit_times |
int |
10 |
0 |
N |
N |
0 |
作业提交限制次数 |
|
11 |
learning_analysis_limit_times |
int |
10 |
0 |
N |
N |
0 |
学习分析限制次数 |
|
12 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
13 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
14 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表 |
|
|
15 |
source_id |
int |
10 |
0 |
Y |
N |
来源ID |
|
|
16 |
source_user_id |
int |
10 |
0 |
Y |
N |
来源用户 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
learning_analysis_id |
int |
10 |
0 |
N |
Y |
学习分析ID |
|
|
2 |
course_name |
varchar |
64 |
0 |
Y |
N |
课程名称 |
|
|
3 |
course_classification |
varchar |
64 |
0 |
Y |
N |
课程分类 |
|
|
4 |
teacher_users |
int |
10 |
0 |
Y |
N |
0 |
教师用户 |
|
5 |
student_users |
int |
10 |
0 |
Y |
N |
0 |
学生用户 |
|
6 |
student_name |
varchar |
64 |
0 |
Y |
N |
学生姓名 |
|
|
7 |
student_id |
varchar |
64 |
0 |
Y |
N |
学生学号 |
|
|
8 |
learning_attitude |
varchar |
64 |
0 |
Y |
N |
学习态度 |
|
|
9 |
analysis_results |
text |
65535 |
0 |
Y |
N |
分析结果 |
|
|
10 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
11 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
12 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表 |
|
|
13 |
source_id |
int |
10 |
0 |
Y |
N |
来源ID |
|
|
14 |
source_user_id |
int |
10 |
0 |
Y |
N |
来源用户 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
notice_id |
mediumint |
8 |
0 |
N |
Y |
公告id: |
|
|
2 |
title |
varchar |
125 |
0 |
N |
N |
标题: |
|
|
3 |
content |
longtext |
2147483647 |
0 |
Y |
N |
正文: |
|
|
4 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
5 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
praise_id |
int |
10 |
0 |
N |
Y |
点赞ID: |
|
|
2 |
user_id |
int |
10 |
0 |
N |
N |
0 |
点赞人: |
|
3 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
4 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
5 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: |
|
|
6 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: |
|
|
7 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
|
8 |
status |
bit |
1 |
0 |
N |
N |
1 |
点赞状态:1为点赞,0已取消 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
schedule_id |
smallint |
5 |
0 |
N |
Y |
日程ID:[0,32767] |
|
|
2 |
content |
varchar |
255 |
0 |
Y |
N |
日程内容 |
|
|
3 |
scheduled_time |
datetime |
19 |
0 |
Y |
N |
计划时间 |
|
|
4 |
user_id |
int |
10 |
0 |
N |
N |
用户id |
|
|
5 |
create_time |
datetime |
19 |
0 |
Y |
N |
创建时间 |
|
|
6 |
update_time |
datetime |
19 |
0 |
Y |
N |
更新时间 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
score_id |
int |
10 |
0 |
N |
Y |
评分ID: |
|
|
2 |
user_id |
int |
10 |
0 |
N |
N |
0 |
评分人: |
|
3 |
nickname |
varchar |
64 |
0 |
Y |
N |
昵称: |
|
|
4 |
score_num |
double |
5 |
2 |
N |
N |
0.00 |
评分: |
|
5 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
6 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
7 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: |
|
|
8 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: |
|
|
9 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
slides_id |
int |
10 |
0 |
N |
Y |
轮播图ID: |
|
|
2 |
title |
varchar |
64 |
0 |
Y |
N |
标题: |
|
|
3 |
content |
varchar |
255 |
0 |
Y |
N |
内容: |
|
|
4 |
url |
varchar |
255 |
0 |
Y |
N |
链接: |
|
|
5 |
img |
varchar |
255 |
0 |
Y |
N |
轮播图: |
|
|
6 |
hits |
int |
10 |
0 |
N |
N |
0 |
点击量: |
|
7 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
8 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
student_users_id |
int |
10 |
0 |
N |
Y |
学生用户ID |
|
|
2 |
student_name |
varchar |
64 |
0 |
Y |
N |
学生姓名 |
|
|
3 |
student_gender |
varchar |
64 |
0 |
Y |
N |
学生性别 |
|
|
4 |
student_phone_number |
varchar |
16 |
0 |
Y |
N |
学生电话 |
|
|
5 |
student_id |
varchar |
64 |
0 |
N |
N |
学生学号 |
|
|
6 |
examine_state |
varchar |
16 |
0 |
N |
N |
已通过 |
审核状态 |
|
7 |
user_id |
int |
10 |
0 |
N |
N |
0 |
用户ID |
|
8 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
9 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
teacher_users_id |
int |
10 |
0 |
N |
Y |
教师用户ID |
|
|
2 |
teachers_name |
varchar |
64 |
0 |
Y |
N |
教师姓名 |
|
|
3 |
teacher_gender |
varchar |
64 |
0 |
Y |
N |
教师性别 |
|
|
4 |
teachers_phone_number |
varchar |
16 |
0 |
Y |
N |
教师电话 |
|
|
5 |
teacher_id |
varchar |
64 |
0 |
N |
N |
教师工号 |
|
|
6 |
examine_state |
varchar |
16 |
0 |
N |
N |
已通过 |
审核状态 |
|
7 |
user_id |
int |
10 |
0 |
N |
N |
0 |
用户ID |
|
8 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
9 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
upload_id |
int |
10 |
0 |
N |
Y |
上传ID |
|
|
2 |
name |
varchar |
64 |
0 |
Y |
N |
文件名 |
|
|
3 |
path |
varchar |
255 |
0 |
Y |
N |
访问路径 |
|
|
4 |
file |
varchar |
255 |
0 |
Y |
N |
文件路径 |
|
|
5 |
display |
varchar |
255 |
0 |
Y |
N |
显示顺序 |
|
|
6 |
father_id |
int |
10 |
0 |
Y |
N |
0 |
父级ID |
|
7 |
dir |
varchar |
255 |
0 |
Y |
N |
文件夹 |
|
|
8 |
type |
varchar |
32 |
0 |
Y |
N |
文件类型 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
user_id |
int |
10 |
0 |
N |
Y |
用户ID:[0,8388607]用户获取其他与用户相关的数据 |
|
|
2 |
state |
smallint |
5 |
0 |
N |
N |
1 |
账户状态:[0,10](1可用|2异常|3已冻结|4已注销) |
|
3 |
user_group |
varchar |
32 |
0 |
Y |
N |
所在用户组:[0,32767]决定用户身份和权限 |
|
|
4 |
login_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
上次登录时间: |
|
5 |
phone |
varchar |
11 |
0 |
Y |
N |
手机号码:[0,11]用户的手机号码,用于找回密码时或登录时 |
|
|
6 |
phone_state |
smallint |
5 |
0 |
N |
N |
0 |
手机认证:[0,1](0未认证|1审核中|2已认证) |
|
7 |
username |
varchar |
16 |
0 |
N |
N |
用户名:[0,16]用户登录时所用的账户名称 |
|
|
8 |
nickname |
varchar |
16 |
0 |
Y |
N |
昵称:[0,16] |
|
|
9 |
password |
varchar |
64 |
0 |
N |
N |
密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成 |
|
|
10 |
|
varchar |
64 |
0 |
Y |
N |
邮箱:[0,64]用户的邮箱,用于找回密码时或登录时 |
|
|
11 |
email_state |
smallint |
5 |
0 |
N |
N |
0 |
邮箱认证:[0,1](0未认证|1审核中|2已认证) |
|
12 |
avatar |
varchar |
255 |
0 |
Y |
N |
头像地址:[0,255] |
|
|
13 |
open_id |
varchar |
255 |
0 |
Y |
N |
针对获取用户信息字段 |
|
|
14 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
group_id |
mediumint |
8 |
0 |
N |
Y |
用户组ID:[0,8388607] |
|
|
2 |
display |
smallint |
5 |
0 |
N |
N |
100 |
显示顺序:[0,1000] |
|
3 |
name |
varchar |
16 |
0 |
N |
N |
名称:[0,16] |
|
|
4 |
description |
varchar |
255 |
0 |
Y |
N |
描述:[0,255]描述该用户组的特点或权限范围 |
|
|
5 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: |
|
|
6 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: |
|
|
7 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
|
8 |
register |
smallint |
5 |
0 |
Y |
N |
0 |
注册位置: |
|
9 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
10 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
5.1学生用户功能模块实现
5.1.1登录界面
登录模块,用户、管理员可以通过登录进入该系统,如果输入正确用户名和密码,则可以进入该系统。用户登录界面如下图所示。
图5-1登录模块界面图
登录关键代码如下:
def Login(self, ctx):
print("===================登录=====================")
ret = {
"error": {
"code": 70000,
"message": "账户不存在",
}
}
body = ctx.body
password = md5hash(body["password"]) or ""
obj = service_select("user").Get_obj(
{"username": body["username"]}, {"like": False}
)
if obj:
user_group = service_select("user_group").Get_obj({'name': obj['user_group']}, {"like": False})
if user_group and user_group['source_table'] != '':
user_obj = service_select(user_group['source_table']).Get_obj({"user_id": obj['user_id']}, {"like": False})
if user_obj['examine_state'] == '未通过':
ret = {
"error": {
"code": 70000,
"message": "账户未通过审核",
}
}
return ret
if user_obj['examine_state'] == '未审核':
ret = {
"error": {
"code": 70000,
"message": "账户未审核",
}
}
return ret
if obj["state"] == 1:
if obj["password"] == password:
timeout = timezone.now()
timestamp = int(time.mktime(timeout.timetuple())) * 1000
token = md5hash(str(obj["user_id"]) + "_" + str(timestamp))
ctx.request.session[token] = obj["user_id"]
service_select("access_token").Add(
{"token": token, "user_id": obj["user_id"]}
)
obj["token"] = token
ret = {
"result": {"obj": obj}
}
else:
ret = {
"error": {
"code": 70000,
"message": "密码错误",
}
}
else:
ret = {
"error": {
"code": 70000,
"message": "用户账户不可用,请联系管理员",
}
}
return ctx.response(json.dumps(ret, ensure_ascii=False))
如果某个人员进入该系统,则注册该用户的信息,如果注册成功,就可以进入该系统,显示的结果如下。注册用户界面如下图所示。
图5-2注册用户界面图
注册关键代码如下:
def Register(self, ctx):
print("===================注册=====================")
userService = service_select("user")
body = ctx.body
if "username" not in body and body["username"] == '':
return ctx.response(json.dumps({
"error": {
"code": 70000,
"message": "用户名不能为空",
}
}, ensure_ascii=False))
if "user_group" not in body and body["user_group"] == '':
return ctx.response(json.dumps({
"error": {
"code": 70000,
"message": "用户组不能为空",
}
}, ensure_ascii=False))
if "password" not in body and body["password"] == '':
return ctx.response(json.dumps({
"error": {
"code": 70000,
"message": "密码不能为空",
}
}, ensure_ascii=False))
post_param = body
post_param['nickname'] = body["nickname"] or ""
post_param['password'] = md5hash(body["password"])
obj = userService.Get_obj({"username": post_param['username']}, {"like": False})
if obj:
return ctx.response(json.dumps({
"error": {
"code": 70000,
"message": "用户名已存在",
}
}, ensure_ascii=False))
ret = {
"error": {
"code": 70000,
"message": "注册失败",
}
}
bl = userService.Add(post_param)
if bl:
ret = {
"result": {
"bl": True,
"message": "注册成功"
}
}
return ctx.response(json.dumps(ret, ensure_ascii=False))
用户使用该系统注册完成后,用户对登录密码有修改需求时,系统也可以提供用户修改密码权限。系统中所有的操作者能够变更自己的密码信息,执行该功能首先必须要登入系统,然后选择密码变更选项以后在给定的文本框中填写初始密码和新密码来完成修改密码的操作。在填写的时候,假如两次密码填写存在差异,那么此次密码变更操作失败。密码修改界面如下图所示。
图5-3密码修改界面图
找回密码关健代码如下:
def Forget_password(self, ctx):
print("===================修改密码=====================")
ret = {
"error": {
"code": 70000,
"message": "用户信息不能没有"
}
}
body = ctx.body
if not body["code"]:
return {
"error": {
"code": 70000,
"message": "验证码不存在或者错误"
}
}
obj = service_select("user").Get_obj(
{"username": body["username"]}, {"like": False}
)
if not obj:
return {
"error": {
"code": 70000,
"message": "用户名不存在或者错误"
}
}
password = md5hash(body["password"])
if not password:
return {
"error": {
"code": 70000,
"message": "密码不存在或者错误"
}
}
bl = service_select("user").Set({"user_id": obj["user_id"]}, {"password": password})
if bl:
ret = {"result": {"bl": True, "message": "修改成功"}}
else:
ret = {
"error": {
"code": 70000,
"message": "修改失败",
}
}
return ctx.response(json.dumps(ret, ensure_ascii=False))
修改密码代码如下:
def Change_password(self, ctx):
print("===================修改密码=====================")
ret = {
"error": {
"code": 70000,
"message": "账号未登录",
}
}
request = ctx.request
headers = request.headers
if ("x-auth-token" in headers) and headers["x-auth-token"]:
token = headers["x-auth-token"]
user_id = tokenGetUserId(token, request)
userService = service_select("user")
body = ctx.body
password = md5hash(body["o_password"])
obj = userService.Get_obj({"user_id": user_id, "password": password}, {"like": False})
if obj:
password = md5hash(body["password"])
bl = userService.Set({"user_id": user_id}, {"password": password})
if bl:
ret = {"result": {"bl": True, "message": "修改成功"}}
else:
ret = {
"error": {
"code": 70000,
"message": "修改失败",
}
}
else:
ret = {
"error": {
"code": 70000,
"message": "密码错误",
}
}
else:
ret = {
"error": {
"code": 70000,
"message": "账户未登录",
}
}
return ctx.response(json.dumps(ret, ensure_ascii=False))
当用户点击“课程资讯”这一菜单按钮,会显示管理员在后台发布的所有的课程资讯信息,支持通过关键词对资讯进行搜索,选择需要的资讯信息点击可以进入到资讯信息详细的介绍界面,同时可以进行点赞、收藏和评论等操作,课程资讯界面如下图所示。
图5-4课程资讯页面图
用户点击“课程信息”这一菜单按钮,会显示管理员在后台发布的所有的课程信息,支持通过关键词对课程信息进行搜索,选择需要的课程信息点击可以进入到课程信息详细的介绍界面,同时可以进行选课、点赞、收藏等操作,课程信息界面如下图所示。
教师可以创建和修改课程内容,包括发布课程大纲、课程介绍、教学计划等,并管理课程中的视频、课件和学习资源等。教师还可以设置课程的授课时间、章节安排以及学习目标,确保课程的结构和目标清晰明确。此外,教师可以查看报名该课程信息列表,了解每个学生的学习进度和参与情况,以便做出相应的调整。对于课程材料,教师可以上传和更新相关的学习资源,如课件、教材和参考书目等,确保学生能够获取到最新的学习材料。课程信息管理界面如下图所示。
图5-6课程信息管理页面图
教师用户点击“选课记录管理”这一菜单按钮,会显示出选课记录列表,支持输入课程名称、学生姓名进行查询和重置的操作。选课记录管理界面如下图所示。
图5-7选课记录管理页面图
管理员输入账号、密码、验证码点击“登录”按钮就会跳转到登录界面。如下图所示。
图5-8管理员登录页面图
管理员可以对系统中所有的用户角色进行管控,包含了管理员、学生用户和教师用户这三种角色,如果需要添加新的用户,点击页面中的“添加”按钮根据提示输入上用户信息,点击“提交”以后在对应的用户界面就可以查看到了,可以点击用户后面的“删除”按钮直接删除某一用户。如下图所示。
图5-9系统用户页面图
增删查改关键代码如下:
增
def Add(self, ctx):
body = ctx.body
unique = self.config.get("unique")
obj = None
if unique:
qy = {}
for i in range(len(unique)):
key = unique[i]
qy[key] = body.get(key)
obj = self.service.Get_obj(qy)
if not obj:
error = self.Add_before(ctx)
if error["code"]:
return {"error": error}
error = self.Events("add_before", ctx, None)
if error["code"]:
return {"error": error}
result = self.service.Add(body, self.config)
if self.service.error:
return {"error": self.service.error}
res = self.Add_after(ctx, result)
if res:
result = res
res = self.Events("add_after", ctx, result)
if res:
result = res
return {"result": result}
else:
return {"error": {"code": 10000, "message": "已存在"}}
删
def Del(self, ctx):
if len(ctx.query) == 0:
errorMsg = {"code": 30000, "message": "删除条件不能为空!"}
return errorMsg
result = self.service.Del(ctx.query, self.config)
if self.service.error:
return {"error": self.service.error}
return {"result": result}
改
def Set(self, ctx):
error = self.Set_before(ctx)
if error["code"]:
return {"error": error}
error = self.Events("set_before", ctx, None)
if error["code"]:
return {"error": error}
query = ctx.query
if 'page' in query.keys():
del ctx.query['page']
if 'size' in query.keys():
del ctx.query['size']
if 'orderby' in query.keys():
del ctx.query['orderby']
result = self.service.Set(ctx.query, ctx.body, self.config)
if self.service.error:
return {"error": self.service.error}
res = self.Set_after(ctx, result)
if res:
result = res
res = self.Events("set_after", ctx, result)
if res:
result = res
return {"result": result}
查多条数据:
def Get_list(self, ctx):
query = dict(ctx.query)
config_plus = {}
if "field" in query:
field = query.pop("field")
config_plus["field"] = field
if "page" in query:
config_plus["page"] = query.pop("page")
if "size" in query:
config_plus["size"] = query.pop("size")
if "orderby" in query:
config_plus["orderby"] = query.pop("orderby")
if "like" in query:
config_plus["like"] = query.pop("like")
if "groupby" in query:
config_plus["groupby"] = query.pop("groupby")
count = self.service.Count(query)
lst = []
if self.service.error:
return {"error": self.service.error}
elif count:
lst = self.service.Get_list(query,
obj_update(self.config, config_plus))
if self.service.error:
return {"error": self.service.error}
self.interact_list(ctx, lst)
return {"result": {"list": lst, "count": count}}
查一条数据:
def Get_obj(self, ctx):
query = dict(ctx.query)
config_plus = {}
if "field" in query:
field = query.pop("field")
config_plus["field"] = field
obj = self.service.Get_obj(query, obj_update(self.config, config_plus))
if self.service.error:
return {"error": self.service.error}
if obj:
self.interact_obj(ctx, obj)
return {"result": {"obj": obj}}
点击“轮播图”管理员可以插入轮播图图片、填写标题进行提交。如下图所示。
5.3.4 通知公告管理界面
点击“通知公告管理”这个菜单,可以查看到系统中所有添加的系统公告,支持通过标题对系统公告进行查询,添加、删除等操作。通知公告管理界面如下图所示。
图5-11通知公告管理界面图
当点击“资源管理”这一菜单的时候,会出现课程资讯、资讯分类这两个子菜单,可以对这两个模块进行增删改查操作。课程资讯、资讯分类界面如下图所示。
图5-13资讯分类界面图
课程分类管理模块使管理员能够对课程进行分类管理。管理员可以创建课程类别,并将课程归类到相应的类别下。这有助于学生快速找到他们感兴趣的课程,也让平台的课程结构更加清晰、组织更加有序。课程分类管理界面如下图所示。
图5-14课程分类管理界面图
6系统测试
测试存在于软件开发进程中的最后一个阶段,它可以保证一个软件的开发质量是否符合设计者的初衷,也为程序的正式上线做了最后一道质量检测的工序。软件测试主要是控制各种条件、包括软件输出方式,使用模式和运行环境等,来评估一个系统或应用是否符合设计标准。在软件测试过程中,我们一般刻意的去制造错误和极端条件,不能仅依照正常模式允许,而是多去尝试那些意外的情况。
系统测试包括:用户登录功能测试、课程信息查看测试、发布公告信息、课程资讯搜索、密码修改功能测试,如表6-1、6-2、6-3、6-4、6-5所示:
表6-1 用户登录功能测试表
|
用例名称 |
用户登录系统 |
|
目的 |
测试用户通过正确的用户名和密码可否登录功能 |
|
前提 |
未登录的情况下 |
|
测试流程 |
1) 进入登录页面 2) 输入正确的用户名和密码 |
|
预期结果 |
用户名和密码正确的时候,跳转到登录成功界面,反之则显示错误信息,提示重新输入 |
|
实际结果 |
实际结果与预期结果一致 |
课程信息查看功能测试:
表6-2 课程信息查看功能测试表
|
用例名称 |
课程信息查看 |
|
目的 |
测试课程信息查看功能 |
|
前提 |
用户登录 |
|
测试流程 |
点击课程信息列表 |
|
预期结果 |
可以查看到所有课程信息 |
|
实际结果 |
实际结果与预期结果一致 |
管理员发布公告信息界面测试:
表6-3 管理员发布公告信息界面测试表
|
用例名称 |
公告信息发布测试用例 |
|
目的 |
测试公告信息发布功能 |
|
前提 |
用户正常登录情况下 |
|
测试流程 |
1)点击公告信息管理,然后点击发布添加后并填写信息。 2)点击进行提交。 |
|
预期结果 |
提交以后,页面首页会显示新的公告信息 |
|
实际结果 |
实际结果与预期结果一致 |
课程资讯搜索功能测试:
表6-4课程资讯搜索功能测试表
|
用例名称 |
课程资讯搜索测试 |
|
目的 |
测试课程资讯搜索功能 |
|
前提 |
无 |
|
测试流程 |
1)在搜索框填入搜索关键字。 2)点击搜索按钮。 |
|
预期结果 |
页面显示包含有搜索关键字的课程资讯 |
|
实际结果 |
实际结果与预期结果一致 |
密码修改功能测试:
表6-5 密码修改功能测试表
|
用例名称 |
密码修改测试用例 |
|
目的 |
测试管理员密码修改功能 |
|
前提 |
管理员用户正常登录情况下 |
|
测试流程 |
1)管理员密码修改并完成填写。 2)点击进行提交。 |
|
预期结果 |
使用新的密码可以登录 |
|
实际结果 |
实际结果与预期结果一致 |
经过对网络课程平台的测试,我们已经完成了5大模块的检测,包括用户登录功能测试、课程信息查看测试、发布公告信息、课程资讯搜索、密码修改功能测试,这些功能为后续的推广运营提供了强有力的技术支持。
通过网络课程平台的开发,本人巩固了之前学过的知识,如今将平时所学到的知识融合在设计中,在设计过程中,做了很多的准备,首先,在数据库系统的设计过程中,尤其是在数据库的工作原理、工作特点,对其深刻的讨论,与此同时,对于小型站点来说,最好服务器的选择,其次,利用所学的知识点分析所做的系统,并在此基础上设计。
目前本系统已经上线,正在试运行阶段,用户反馈良好,基本完成用户所需,试运行过程中没有出现阻断性问题,有一些不足和小问题也及时予以修正,系统上线后,为了保证数据的安全性,对系统进行了备份操作,系统备份是每两个月备份一次,数据库备份为每周备份一次,系统部署在云平台服务器中。
本次系统上线成功后,得到了用户的高度认可,但是在功能上和性能上还需做进一步的研究处理,使其有更高的性能和更好的用户体验。
系统在以后的升级过程中,需要解决一系列用户所提出的问题,例如打印过程中如何避免浏览器的兼容性问题,大量用户访问时,如何保持较高的响应速度,在系统今后的升级过程中将着重解决这些安全性问题。
- 颜芳.开放大学网络课程质量提升策略研究[J].江西开放大学学报,2024,26(04):37-43.DOI:10.13844/j.cnki.jxddxb.2024.04.004.
- 赵涛,达新民,李全胜,等.基于秾大云平台的计算机网络课程翻转课堂模式研究[J].创新创业理论研究与实践,2024,7(23):43-46.
- 刘俊霞,卞琛.AI赋能的应用型本科计算机网络课程教学改革与实践探索[J].高教学刊,2024,10(32):148-151.DOI:10.19980/j.CN23-1593/G4.2024.32.034.
- 吴保文,刘勇,王元亮.大学生网络课程有效学习影响因素及促进策略研究[J].文山学院学报,2024,37(05):67-72.
- 米仁沙·艾尼.计算机网络课程虚拟实验平台设计与应用评估[J].软件,2024,45(10):87-89.
- 吴成超,徐荣华,蒋鸣熙.基于Moodle平台的中小学STEM学科网络课程教学内容设计与构建研究[J].中小学电教,2024,(Z2):95-97.
- 徐立艳.基于大数据的计算机网络课程虚拟仿真实验教学平台建设研究[J].电脑知识与技术,2024,20(15):64-66+69.DOI:10.14004/j.cnki.ckt.2024.0759.
- 王娜娜.计算机网络课程中的UMU互动教学平台设计[J].电子技术,2024,53(04):204-205.
- 刘琴,贾丽,张红霞.基于网络课程平台的“混合式”教学模式创新研究与实践[J].知识窗(教师版),2024,(03):105-107.
- Wang Q ,Zheng L ,Hong R .Exploration on the Teaching Model of Java Programming and Practice for Students with No Programming Background[J].Advances in Educational Technology and Psychology,2024,8(6):
- Zhang J .Teaching Reform of Java Program Design Based on Vocational Education Cloud Platform[J].Journal of Higher Education Teaching,2024,1(5):
- Wai H K ,Funabiki N,Aung T S, et al.Answer Code Validation Program with Test Data Generation for Code Writing Problem in Java Programming Learning Assistant Ullenboom C .Java Programming Exercises:Volume Two: Java Standard Library[M].CRC Press:2024-03-30.
- 陈亮,马磊.基于网络课程平台的设计学专业课程思政学习评价研究[J].美术教育研究,2024,(04):57-60.
- 贺琳.大数据背景下物流信息系统网络课程实践教学平台建设[J].物流工程与管理,2024,46(01):188-190+107.
- 陈丽丽.基于网络平台的高校思政教育混合式教学研究[J].淮南职业技术学院学报,2023,23(06):23-25.
- 耿新玲,魏婧,吴薇薇,等.基于BB平台的模式识别网络课程建设及应用[J].医学教育管理,2023,9(S1):37-40.
- 罗小峰,万益静,张力源,等.基于大型开放式网络课程平台的性与艾滋病健康教育类课程现状分析[J].中国性科学,2023,32(09):157-160.
- 冯翔宇.eNSP仿真平台在计算机网络课程教学改革中的应用研究[J].电脑知识与技术,2023,19(21):70-72.DOI:10.14004/j.cnki.ckt.2023.1047.
- 祝元洋.哈尔滨市南岗区初中体育课程线上线下混合式教学现状与对策研究[D].哈尔滨师范大学,2023.DOI:10.27064/d.cnki.ghasu.2023.001145.
经历了近三个多月的动手实践及老师辛勤的指导和同学朋友热心的帮助下,本人的毕业设计网络课程平台的基本功能也基本完成。
此次设计中,通过不断的探讨与学习使我熟悉、使我初步了解了Django相关技术。我做的是一个B/S结构的网络课程平台,使我对做网站所需要,及运行的环境有了初步的了解,在此次设计中我翻阅了较多的书籍,在有限的时间了丰富了对网络课程平台技术的知识也积累了少许的经验。起初对Python的初步认识,通过这次设计更进一步的了解了其工作原理,懂得了配置服务器环境,连接数据库源,在设计过程中,也学会了用Pycharm设计一个简单的页面,增强了动手的能力,激发了在此方面的兴趣。
但是由于时间、基础及缺乏实践等多方面的问题,还有诸多需要解决的问题依然存在,设计中很多方面考虑不够周全或者考虑不到。
非常感谢我的老师,我的同学,我的朋友并希望在今后的学习生活中不断陪养多方面的兴趣,不断学习进步从而能够实现独立完成。设计中存在的诸多缺点诚肯老师的原谅。
点赞+收藏+关注 → 私信领取本源代码、数据库
更多推荐

所有评论(0)