基于python的课程网站的设计与实现

目录

第1章 概述 4

1.1 项目背景 4

1.2 目的意义 4

1.3 系统设计思想 4

1.3.1 mvc软件架构模式 4

1.3.2 敏捷软件开发 4

1.3.3 迭代开发 4

1.4 系统开发环境 5

1.5 开发人员 5

第2章 可行性分析 6

2.1 经济可行性 6

2.2 技术可行性 6

2.2.1 Python 进行web开发 6

2.2.2 Flask web 开发框架 6

第3章 系统需求分析 7

3.1 系统用户分析 7

3.2 系统整体需求分析 7

3.3 系统功能需求分析 8

3.3.1 登录注册功能 8

3.3.2 用户信息管理功能 8

3.3.3 学生选课管理功能 8

3.3.4 教师开课管理功能 8

3.3.5 教师管理功能 8

3.3.6 开课审批功能 8

3.4 性能需求分析 8

第4章 数据库设计 10

4.1 数据库关系模型设计 10

4.1.1 概念结构设计 10

4.2 数据库表结构设计 12

第5章 系统总体设计 14

5.1 系统技术架构设计 14

5.1.1 系统相关技术介绍 14

5.1.2 系统架构图 14

5.2 系统功能模块设计 14

第6章 详细设计 16

6.1 登录注册模块 16

6.2 用户管理模块 17

6.3 用户管理过程 17

6.3.1 流程设计 17

6.3.2 算法设计 18

6.3.3 课程管理过程 20

6.4 课程管理模块 20

6.4.1 流程设计 20

6.4.2 算法设计 21

6.5 在线答疑模块 21

6.5.1 在线答疑过程 21

6.5.2 流程设计 22

6.6 文档管理模块 23

6.6.1 文档管理过程 23

6.6.2 流程设计 23

6.7 其他模块 24

6.7.1 选择专业 24

6.7.2 上传出错 24

第7章 系统实现 25

7.1 ORM模型类实现 25

7.2 View视图实现 28

7.3 网站后台实现 30

7.4 URL 路由实现 32

7.5 网站界面实现 32

7.5.1 前台界面实现 32

7.5.2 后台界面实现 36

 

第1章 概述

1.1 项目背景

随着网络技术的发展,我们发现信息技术的飞速发展正越来越深刻地影响着教育发展,教育信息化的发展方向需要我们在基础教育课程改革中充分发挥信息技术的巨大优势,让我们的教育能更好地适应当前科学知识迅速膨胀的客观现实,同时也促进教育品质的不断提升。建立精品课程网站是信息化教育资源建设的一种有效形式,具有资源丰富,自主性强、交互性好的特点。《数据结构》精品课程网站可以解决《数据结构》课程开设中的诸多难题,是为促进教师教与学生学而设计开发的。

1.2 目的意义

设计此系统是为了实现教学目的、由各教学要素有机结合而成的具有一定教学功能的整体。为了达到一定的教育、教学的目的,实现一定的教育、教学的功能的各种教育、教学组织形式。教材内容的组织,系统教材库是提高教学质量、激发学习兴趣的关键。

1.3 系统设计思想

1.3.1 mvc软件架构模式

MVC(Model View Controller)是软件工程中的一种软件架构模式,它把软件系统分为模型、视图和控制器三个基本部分。用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。此模式透过对复杂度的简化,使程序结构更加直观。

1.3.2 敏捷软件开发

敏捷软件开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

1.3.3 迭代开发

每次只设计和实现这个产品的一部分, 逐步逐步完成的方法叫迭代开发, 每次设计和实现一个阶段叫做一个迭代。在迭代式开发方法中,整个开发工作被组织为一系列的短小的、固定长度(如3周)的小项目,被称为一系列的迭代。每一次迭代都包括了需求分析、设计、实现与测试。

1.4 系统开发环境

l 操作系统:Ubuntu 18.04

l 数据库:MySQL 8.0

l 开发工具:Python 3.7 Django 2.2

1.5 开发人员

本系统开发人员为:

l 张永华

第2章 可行性分析

2.1 经济可行性

经济可行性分析中最重要的内容之一是成本--效益分析。对于一个基于计算机系统的研制项目要在经济方面评价其是否合理,成本--效益分析要估计研制开发的花费并与收益(包括有形的可以用货币计数的及无形的利益)衡量比较。新系统可以节省在教学文档管理、教学互动等工作上所花费的时间与精力,从而减少资金投入,提高教学效果。不仅如此,新系统可以在大学信息化教学中心提供的服务器上运行而无需另外出资购买网络空间,从经济上看也是可行的。

2.2 技术可行性

2.2.1 Python 进行web开发

Python 是一门解释性语言,具有语法简单易于读写,类库多样功能强大,多平台兼容等特点。Python的开发效率非常高, Python有非常强大的第三方库

Python 有众多优秀的WEB框架,众多大型网站均为Python开发,Youtube, Dropbox, 豆瓣。

2.2.2 Django web 开发框架

Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,视图V和模版T。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。并于2005年7月在BSD许可证下发布。这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。Flask因为灵活、轻便且高效的特点被业界认可,同时拥有基于Werkzeug、Jinja2等一些开源库,拥有内置服务器和单元测试,适配RESTful,支持安全的cookies,而且官方文档完整,便于学习掌握。

第3章 系统需求分析 

 

3.1 系统用户分析

使用该课程网站的用户共分为三类:

学生:注册成为该课程网站上的普通用户,可以在该网站上进行选课学习。

教师:课程网站的教师用户,可以在该网站上开课讲课。

管理员:对网站的功能进行关系,如用户管理,课程管理,教师管理 

3.2 系统整体需求分析

该课程教学网站整体可分为前台和后台两大模块,前台面向学生用户;后台面向教师和管理员。

系统使用基于用户角色的权限管理模式。网站可分为用户登录模块,用户信息管理模块,课程管理模块,作业管理模块,资源管理模块,留言管理模块等功能。

 

3.3 系统功能需求分析

3.3.1 登录注册功能

学生用户点击登录按钮,跳转到登录界面,若学生还未注册,则选择注册选项;学生已经注册,则选择登录选项进行登录。

当学生选择注册选项时,跳转至注册页面,需填写学号,密码进行注册,注册成功后跳转至登录界面

当学生选择登录选项时,跳转至登录界面,填写学号密码进行登录,若密码错误,则拒绝登录;登录成功则跳转至网站首页。

 

3.3.2 用户信息管理功能

学生用户在登录状态下点击个人信息,进入个人信息页面,可对个人信息进行修改,有姓名,性别,学院,专业,电话,邮箱等。

当学生对信息修改完成后,点击保存按钮进行保存,同时刷新个人信息页面。

3.3.3 学生选课管理功能

学生用户在登录状态下,点击查看课程列表,进入课程列表页面,选择课程点击参加课程按钮进行选课,选中课程后,按钮变成进入学习。

在我的课程页面,学生可查看已参加的所有课程,点击课程名字进入课程主页;可删除已参加课程(退课)。

3.3.4 教师开课管理功能

教师在登录状态下,点击我的开课,进入我的开课页面,可以查看所有已经开课的课程,可以点击我要开课进行开课,点击结课结束课程。

3.3.5 教师管理功能

不是本网站的教师要在本网站上进行讲课,需在教师登录界面点击申请入驻,填写教师申请表,包括教师编号,学院,专业。

后台管理员对申请进行审核,审核通过后为教师分配初始密码。

管理员可以对教师进行添加,删除。

3.3.6 开课审批功能

教师开设新课时,需填写开课申请,课程名称,课时,开始日期,结束日期。

管理员对教师提交的开课申请进行审批,审批通过后方课进行开课。

3.4 性能需求分析

根据本系统的实际情况来看,系统在性能方面需要具有相应速度快、系统稳定性好、操作简单、具有良好的负载能力和容量等特点,对系统性能提出具体要求如下。

测试项目

具体描述

需求指标

系统容量

系统可以承载的用户容量

容量满足4000用户,

并发500用户。

系统响应时间

500个用户,并发用户60个

<1s

1000个用户,并发用户200个

<2.5s

3000个用户,并发用户400个

<4s

4000个用户,并发用户3500个

<5s

准确性

不同用户登录系统后转向特定页面

100%

数据完整性

出现操作意外中断时,

系统回滚到最后操作前

100%

适应性

在多种系统下均能正常工作,

支持多种浏览器

兼容多种系统:Windows、Linux、MacOS,支持多浏览器

 

第4章 数据库设计

4.1 数据库关系模型设计

4.1.1 概念结构设计

通过分析,首先确定参与系统的实体有权限、角色、用户、课程、选课、资源、评论等。

1、 权限实体及其属性

权限指用户进行操作时需要的权限,其属性为权限编号和权限名。

2、 角色实体及其属性

角色指用户的类型,其属性为角色编号和角色名。

3、 用户实体及其属性

用户根据用角色编号区分类型,其属性为用户编号,角色名,昵称,邮箱,密码,简介,角色编号。。

4、 课程实体及其属性

课程属性为课程编号,课程名,课程分类号,课程简介,开课时间,结课时间,课程创建者编号(即用户编号)。

5、 课程分类实体及其属性

分类属性为分类编号,分类名。

6、 选课实体及其属性

选课属性为用户编号,课程编号

7、 资源实体及其属性

资源属性为资源编号,资源名,资源介绍,资源路径,课程编号。

8、 评论实体及其属性

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值