基于Django框架的在线视频学习系统设计与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2019.08
1概述
传统授课模式的局限性,会给一个企业的培训工作
带来很多弊端,比如授课时间地点受限制,对于分散化办公的企业带来众多的培训成本等。而一个组织通过教育培训,可以丰富员工知识,优化员工的知识结构,增强企业的生产力和竞争力[1]。随着社会经济和文化的飞速发展,知识体系的迭代更新也越来越快,对员工的知识结构和更快速的自主学习能力都有较高的要求,此时,在线教育应运而生[2]。在线教育是培训方式上的一种创新和探索,不仅使得学习者可以随时随地根据按需进行,而且使得教学资源得以充分利用,大大降低企业培训的成本[3]。中南空管局作为民航总局空管局下属的7大局之一,目前主要通过传统授课方式开展培训工作,培训时间成本和经济成本都很高,所以设计并开发一个在线教育系统系统非常有必要,该系统前端选用HTML+CSS+JavaScript,后端选用基于Python 的Django 框架,数据库选用MySQL。
2Django 框架
Django 是一个开源的Web 框架,由Python 写成,
采用MTV (Model—View—Template)的框架模式,具有数据库处理(M)、模板显示处理系统(T)和数据的加工和模板的调用(V)功能。由于Django 是使用Python 开发的,所以如果用Django 开发站点,则用Django 库写Python 代码[4]。其主要优势包括:2.1高级Web 框架
Django 易于构建模板,可以使用已经内置的模板语
言,可以轻松构建可部署的应用程序。Django 框架允许为域和代码类建模。2.2提供快速开发
Django 框架提供了大量的类库,内置了大量Web
组件和Web Server,使得开发者以极少、简洁的代码进行各种Web 开发,很大程度上加快开发速度。2.3Django 安全性能高
Django 能更好地防止了许多常见的错误,它可以通
过动态生成网页并通过模板向Web 浏览器发送信息,“隐藏”网站的源代码(CSS 和HTML 除外),直接在互联网上查看。
3
系统设计
3.1系统功能
本系统的开发流程如图1所示可分为用户模块(包
括用户注册、用户登录和用户管理)、课程管理模块(包括视频上传、视频编辑和分类管理)、评论模块(包括评论添加和评论管理)、个人中心(包括个人收藏和个人喜爱)共4个部分。
3.2数据库
数据库是一种数据集合,它把大量的数据按一定结
构有组织地、有序地存储起来,提供数据管理的功能,作者简介:钟如秀(1987-),男,硕士,工程师,研究方向:Web 开发。收稿日期:2019-05-21
基于Django 框架的在线视频学习系统设计与实现
钟如秀
(民航中南空管局,广州510403)
摘
要:针对当前空管系统传统授课模式存在的问题,基于Django 框架,结合流媒体和MySQL 技术,设计实现了一个对培训有重要价值的在线视频学习系统。系统可分为前台子系统和后台子系统,学员在前台可以根据自己的兴趣和需求进行在线学习,同时学员可以对喜欢的课程进行收藏和评论,教员通过后台可以实现视频资源的传播教授,具有很高的应用价值。关键词:在线教育;Django 框架;视频点播
图1系统结构框图
在线视频学习系统
用户模块用户注册用户登录用户管理
课程管理模块视频上传视频编辑分类管理
评论添加评论模块评论管理
个人中心个人收藏
个人喜爱
141
2019.08
巧妙利用数据库技术可以减少数据的冗余度,大大节省数据的存储空间。3.2.1E-R 图
E-R 图也称实体-联系图(Entity-Relationship Dia⁃
gram),提供了表示实体类型、属性和联系的方法。构
成E-R 图的基本要素是实体性、属性和联系。使用E-R 图可以使信息系统各要素、各模块之间的逻辑更加清晰,表示更加明确,有利于后续编程工作的开展。本系统所设计的E-R 图包括:用户E-R 图、课程E-R 图、课程分类E-R 图、评论E-R 图、收藏E-R 图和喜爱E-R 图,图2为系统总E-R 图。
3.2.2数据表
根据系统的功能要求,该系统的数据库包括以下6
个表:用户表(User)、视频表(Video)、评论表(Com⁃ment)、分类表(Classification)、收藏表(Collection)和喜爱表(Like)。下面列出用户表User 的数据结构。
4
系统实现与测试
4.1系统实现
在开发阶段,选用基于Windows7操作系统的Py⁃
charm2018作为开发环境,数据库系统选用MySQL,
而安装了Python3.7+Django2.1作为支持环境。下面就用户模块、课程资源模块和评论模块3个模块重点进行阐述。4.1.1用户模块
本系统中用户可分为学员、教员和系统管理员,不
同用户类型都有不同的操作权限,登录后的界面也不尽相同。因此,在系统登录时,后台子系统会根据数据库中比对用户信息和类型,将判定结果回馈给系统,并把相应的操作界面通过前台子系统呈现给用户,用户还可以在后台个人中心对个人信息进行修改。其部分重点代码如下所示:
def login(request):
if request.method=='POST':
next=request.POST.get('next','/')
form=UserLoginForm(request=request,data=re⁃quest.POST)
if form.is_valid():
username =form.cleaned_data.get ('user⁃
name')
password=form.cleaned_data.get('password')
user=authenticate (username=username,
password=password)
if user is not None:
auth_login(request,user)return redirect(next)else:print(form.errors)
return render (request,'registration/login.html',{'form':form,'next':next})4.1.2课程资源模块
该模块主要用于教员对课程进行管理,可以进行课
程视频上传,还可以查看已经上传的课程列表,对上传后的视频进行编辑修改,还可以搜索已经上传的课程资源。其部分重点代码如下:
def get_context_data(self,**kwargs):
context =super (VideoDetailView,self).get_con⁃text_data(**kwargs)
form=CommentForm()
recommend_list =Video.objects.get_recom⁃
mend_list()
context['form']=form
context['recommend_list']=recommend_list return context 4.1.3评论模块
该模块可以用于对自己看过的课程资源进行评论,
增强互动,有利于企业从众多课程中选取优质课程作为精品课程。其部分重点代码如下:
def get_comments(request):if not request.is_ajax():
return HttpResponseBadRequest()page=request.GET.get('page')
page_size=request.GET.get('page_size')video_id=request.GET.get('video_id')
video=get_object_or_404(Video,pk=video_id)
comments=ment_set.order_by('-times⁃tamp').all()
comment_count=len(comments)
paginator=Paginator(comments,page_size)rows=[]
图2系统总E-R 图
教员1上传n
n
n n
1
11课程评论
学习收藏
学员
142