基于Django框架的在线视频学习系统设计与实现

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档