基于Django的编程学习辅助系统的设计与实现


    



    基Django编程学辅助系统设计实现

    Design and Implementation of Programming Learning Assistant System Based on Django


    计算机编程学仅注重书阅读更离开动手实践编写代码动手实践知识具体化程编程力评定包括编写代码速度质量总量等三维度中总量直观具体
    作者针广东东软学院科计算机相关专业学生进行调研发现学生代码零散分布课程作业线判题系统台实践项目中导致学生老师难获取代码总量指标解决问题作者设计开发基Django编程学辅助线系统取名积码
    积码系统代码量统计分析核心作业理索引线判题系统台学交流享资源进行整合学生授课老师通积码系统记录学生学科四年完成实践成果获代码量统计报告监控学生学情况取资源更加便利达辅助编程学效果

    关键词: Djangoweb系统台代码量统计报告监控学情况编程学辅助












    Abstract

    The study of computer programming not only pays attention to the reading of books but also cannot be separated from personal handson practice Handson practice is writing code which is the process of materializing knowledge The evaluation of programming ability includes three dimensions such as the speed quality and total amount of code written The total amount is the most intuitive and specific
    The author conducted a survey of undergraduates majoring in computer science at Guangdong Neusoft University and found that students 'and teachers' difficulty in obtaining the indicator of the total code is due to the scattered distribution of student codes in coursework online problem determination system platforms and personal practice projects In order to solve this problem the author designed and developed an online system based on Django for programming and learning named JiCode
    The JiCode system is based on the statistical analysis of code amount and integrates job management indexing online problem determination system platform learning communication and shared resources Students and lecturers can use the JiCode system to record the practical results of students completed within four years of college obtain code analysis reports monitor student learning and make it easier to obtain resources to achieve the effect of assisted programming learning

    Key words Django Web System Platform Code Amount Analysis Report Monitoring Learning Situation Programming Learning Assistance



    目 录
    1绪 1
    11研究背景意义 1
    12核心成果 1
    13文结构 2
    2需求分析 3
    21业务需求分析 3
    22户功需求分析 4
    221通模块 4
    222学生模块 5
    223教师模块 5
    224台理模块 6
    225系统总体例 6
    24非功需求分析 6
    241 性需求 7
    242 质量属性 7
    243 接口约束 8
    3系统设计实现 9
    31 系统框架 9
    32 软件总体概述 10
    33 数库设计 13
    331户角色表 14
    332户抽象类表 14
    333教师表 15
    334学生表 15
    335批量户生成文件表 15
    336课程表 15
    337文编辑抽象类表 16
    338作业表 16
    339作答表 17
    3310评表 17
    3311组队表 17
    3312代码表 18
    3313邮箱验证 18
    3314 总体数ER关系图 19
    34 业务流程 20
    341户端流程基业务 20
    342特定户业务流程 24
    35项目目录结构 33
    36系统界面设计 36
    361户端界面 36
    362台理端界面 39
    37具体实现 40
    371代码量分析 40
    372代码量视化 44
    373台系统 49
    374 作业提交理 50
    4系统部署 56
    41 阿里云部署 56
    42 生产环境 57
    5结 59
    51 总结课题成果 59
    52 未展 59
    参考文献 60
    附 录:积码系统赖工具包 61
    致 谢 62

    1绪
    11研究背景意义
    信息时代计算机编程教育学热点计算机专业培养效率质量方面提高[1]根2018年国教育部发布计算机类专业教学质量国家标准计算机专业学生四年总实践代码量超两万行
    作软件工程科专业学生四年学计算机类相关知识学程中学生老师进行沟通讨发现授课老师难全面掌握学学情况学生准确评判身编程水
    针编程水判断进步研究发现判断编程水力考查知识体系掌握情况必须实际编写代码包括编写速度程序质量代码总量中速度质量判定需特定环境条件限定样段代码程序解决问题需达目标会具体问题改变代码总量直观具体维度常作编程力评判标准根2018年国教育部发布计算机类专业教学质量国家标准计算机专业学生四年总实践代码量超两万行
    出现掌握学情况现象原学生编写代码零散分布课程作业线判题系统台实践项目中学生老师便记录代码统计分析代码总量
    解决问题课题构思设计种系统够记录统计动态分析学生代码课程作业理线判题系统索引学交流资源享等功相结合作线台辅助计算机编程学通系统台学生编写代码时传记录分析编程学历程授课老师时分发作业资源查统计学生代码量解编程学进展情况
    计算机编程学离开积累代码量座厦没砖块堆砌系统取名积码
    12核心成果
    需求分析系统框架分析系统设计编码实现云端部署验收测试系统终构建完善积码系统基组件包括MySQL数库Python编程语言开发Django重量级web框架搭配BootstrapjQuery前端框架部署阿里云轻量应服务器NginxuWSGI等web服务器进行搭建生产环境户够通互联网设备电脑板手机客户端系统网站进行访问
    系统包括五核心功:积码系统包括六核心功:户信息理(注册登录查信息等)代码统计报告练课程理作业理台理系统(涵盖户理权限理课程理作业理等)
    户分学生老师两种身份老师理课程作业传资源文件查学生代码量统计报告学生提交课程作业载课程资源练区提交日练月项目查代码量统计报告
    理员设置权限理户课程作业等

    13文结构
    文构建积码系统线设计开发序讲解系统实现包含部分重开发程面简全文章节容结构进行说明
    第章绪首先介绍课题项目研究背景意义提出完成目标求然展示核心研究成果介绍系统构成包括底部框架数库部署台核心功户象等阐述说明文结构
    第二章需求分析系统开发需求分析开始章容包括业务需求分析户需求分析功需求分析非功需求分析全面展现系统完成目标求
    第三章系统设计实现章属核心容包括系统体框架总体架构数库设计业务流程系统界面具体代码实现详细全面讲解积码系统构建结构外说明文涉积码系统整体设计实现测试部分做述说
    第四章系统部署章讲述阿里云台系统部署Nginx搭配uWSGI软件负载均衡方案
    第五章结未应讨积码系统扩展功更性工智API结合应
    附录积码系统赖第三方包

    2需求分析
    需求分析系统开发第步重步骤通需求分析确定系统需完成功达性测试验收标准开发程中技术市场成等问题需求发生更改定文档作记录保证系统开发序性准确性章节积码系统业务需求户需求功需求等三角度进行分析[2]制定系统开发目标客户开发员描绘出整系统轮廓
    21业务需求分析
    业务需求提出象客户项目负责等部门领导通沟通积极提问引导提出需求直接技术话语询问具体技术求客户领导类群体未必专业技术开发者脑海里定概系统蓝图需求分析员做引导帮助蓝图绘制出
    计算机专业老师学生进行讨分析出三点业务需求
    1背景
    教育部提出计算机类专业教学质量国家标准求计算机专业学生四年总实践代码量超两万行某高校软件工程计算机相关专业授课老师提出监控专业学生科四年代码总量中包括分布课程作业线判题系统项目全部代码辅助老师学生监控学生编程学情况
    2系统目标
    搭建基BS线编程学辅助网站供全院3000名学生老师进行畅运行统计出学生四年总代码量认项目成功
    3市场需求
    前学校没台系统够收集学生练程中产生代码老师学生难宏观掌握学生学情况满足监控计算机专业学生四年代码总量超两万行需求需专门台系统实现计算机专业老师学生需求
    22户功需求分析
    业务需求分析分析出系统户需求户需求指项目服务体群需求围绕户进行调查挖掘出系统功模块系统设计开发完善维护提供重
    积码系统三种户进行服务:学生老师理员拥业务权限系统分户端台理端两客户端拥访问入口然计算机专业学生老师讨出积码系统应具六核心功:户信息理(注册登录查信息等)代码统计报告练课程理作业理台理系统(包括户理权限理课程理作业理等)
    根业务户需求进步具体分析功需求功需求开发者系统开发程中实际硬性求实现功模块户通功操作系统完成指定事务面阐述积码系统功模块:通模块学生模块教师模块台理模块具体代码实现第三章继续讲解
    221通模块
    模块包括登录找回密码信息理等子模块详见表21通模块表
    表21通模块
    模块

    描述

    登录
    登录
    登录账号
    退出
    退出账号
    注册
    注册账号


    找回密码
    验证邮箱
    验证填写户邮箱
    发送验证码验证
    系统户邮箱发送验证码验证户填写验证码
    验证新密码
    户填写新密码系统验证否符合标准

    信息理
    信息
    展示账号信息
    修改邮箱
    修改账号邮箱
    修改密码
    修改账号密码
    修改描述
    修改信息中描述
    222学生模块
    模块包括代码量统计加入课程作业提交等子模块详见表22学生模块表
    表22学生模块
    模块

    描述
    代码量统计
    总量统计
    时间统计代码总增长量
    编程语言统计
    统计代码编程语言种类
    课程代码统计
    统计课程代码提交量
    查报告
    查代码量统计报告

    加入课程
    选择
    选择公开课程
    加入
    加入公开课程

    查课程容详情

    作业提交

    查作业列表详情
    选择
    选择作业
    填写
    填写文容传文件压缩包
    提交
    点击提交
    223教师模块
    模块包括课程理作业理查学生情况等子模块详见表23教师模块表
    表23教师模块
    模块

    描述

    课程理

    查课程列表详情
    创建
    创建课程
    修改
    修改课程容

    删课程

    作业理

    查课程作业列表详情
    创建
    创建课程作业
    修改
    修改课程作业容

    删课程作业
    查学生情况
    查列表
    查课程学生列表简信息
    查报告
    查课程学生代码量统计报告
    224台理模块
    模块包括户理权限理项目理等子模块详见表24台理表
    表24台理模块
    模块

    描述

    户理

    查户列表详情
    创建
    创建户
    修改
    修改户信息容

    删户

    权限理

    查户权限
    创建
    创建户权限
    修改
    修改户权限

    删户权限

    项目理
    课程理
    课程增删查改
    作业理
    作业增删查改
    教师理
    教师角色增删查改
    学生理
    学生角色增删查改
    225系统总体例
    根述模块连线方式学生教师理员应户需求模块进行相连绘制出积码系统总体例图详情图21示
    图 21 积码系统总体例图
    24非功需求分析
    系统满足客户指定业务需求外达定性易维护性等非功性需求面具体说明项目性需求质量属性接口约束等四方面非功需求
    241 性需求
    1数精确度
    积码系统包括数代码量作业评分日期等三数精确求详见表27
    表27数精确度
    数类型
    数类型
    精度
    代码量
    整数型
    0~10000000000
    作业评分
    整数型
    0~100
    日期
    YYMMDD


    2 时间特性
    积码系统应数处理响应时间求详见表28
    表28时间特性
    数类型
    时间特性求
    响应时间
    2500毫秒
    更新处理时间
    4000毫秒
    数转换传输时间
    2000毫秒
    运行时间
    全年7*24时线

    3 兼适应性
    特性求五点系统性化交互操作简单二运行环境包括赖硬件软件规格应中等偏系统够较高适应力三系统部代码求标准进行注释期易进行维护扩展五兼容先流浏览器包括谷歌火狐SafariIEOpera具体版号限制见节接口约束
    242 质量属性
    质量属性包括安全正确移植健壮易等6维度详见表29

    表29质量属性
    属性名
    具体求
    安全性
    防止跨站请求伪造户密码加密
    正确性
    系统站点正常显示会出现报错页面缺失乱码数错误等问题
    移植性
    系统兼容现流服务器台操作系统
    健壮性
    系统时支持3000发操作导致崩溃稳定运行1年

    系统出现异常报错崩溃概率5
    易性
    页面交互性化操作简单易懂户需通浏览器访问

    243 接口约束
    接口指系统运行环境中需赖硬件软件求兼容浏览器版详见表210
    表210接口
    接口类型
    具体求
    硬件
    1) CPU低1核
    2) 存1GB
    3) 支持1M宽带
    4) 40GSSD固态硬盘
    软件
    1) 操作系统:Linux
    2) 数库:MySQL5720
    3) 运行环境:Python3+
    4) 开发语言:PythonJavaScriptHTMLHTML5CSSCSS3
    5) 框架:Django20Bootstrap3+jQuery2+
    6) 应服务器:Nginx15+
    7) 网关:uWSGI2+
    浏览器
    谷歌(版10)火狐(版4)Safari(版5)IE(版9)Opera(版111)
    注:项目额外需第三方赖见附录积码系统完整赖工具包
    3系统设计实现
    章分两部分第部分讲述积码系统设计包含系统框架系统总体概述数库设计业务流程项目目录结构系统界面等六节第二部分具体实现重点讲解端代码量分析视化台系统作业提交理等三部分模块实现
    31 系统框架
    积码系统采基Python语言编写Django框架[3]特点包括完善ORM关系映射强路映射完善视图模板实现健全台理系统强缓存支持防止跨站请求伪造(CSRF)工具特点网站搭建够快速实现
    Django采MTV模式MVC模型模板视图三部分组成模型称Model数存取层处理数相关事件包括存取验证效模板称Template表现层负责页面展示户视图称View数存取层存取模型调取恰模板相关逻辑处模型模板间基三层表单文件称Form负责验证切户输入数否符合规定格式保留户次输入数
    Django构建项目需通配置文件(settingspy)路(urlspy)连接功模块(app)十分注重高聚低耦合面讲述部件作
    settingspy作配置文件设定功模块路径数库连接静态文件址户媒体文件址中间件session存储系统语言时间等做连接外部部庭院
    urlspy路文件分发器指页面者功模块方便集中理
    功模块APPmigrations文件夹八文件分initadminappsformsmodelstestsurlsviews组成八文件分应初始化理员应名表单模型测试子路视图migrations文件夹存放动生成数库更新命令文件
    整Django项目通managepy文件统调度:运行项目创建超级户生成数库创建应等
    文件外wsgipy文件中WSGIweb服务器网关接口(Web Server Gateway Interface)缩写python选择服务器应标准般开发模式时web服务器
    图31 DjangoMTV模式示意图直观说明Django应相互作
    图 31 DjangoMTV模式示意图
    32 软件总体概述
    积码系统功包括:代码量分析课程理作业理作业提交户理台理
    代码量分析包括作业代码量课程代码量总代码量分三级逐级累加次作业文件交系统动提取代码文件识编程语言统计代码行数(空行)代码量时间课程名编程语言存入数库学生户旧数起形成代码量报告数视化包括总代码量时间折线图编程语言占饼状图课程占柱状图
    课程理增加删查找更改课程课程属老师学生选择公开公开(公开学生加入公开选定学生加入)
    作业理增加删查找更改作业作业属课程作业进行户评老师学生提交作业进行评价分载课程学生作业成绩表
    作业提交学生选择作业进行文字编辑传文件提交作业属学生学生提交作业课程团队提交认定全员提交
    户理增加删查找更改户总3户角色:学生老师理员户基础属性:户名密码邮箱性创建时间更改时间描述老师额外属性:职称进行课程理作业理查学生代码量报告更改密码邮箱描述学生额外属性:班级加入课程提交作业查代码量报告更改密码邮箱描述理员分超级理员般理员进行课程理作业理户理外超级理员更改户权限
    述功绘制出系统总体架构图32示分六级户模块理员模块两类
    图 32 积码系统总体架图
    33 数库设计
    数库作系统数存储数仓库方便系统调添加修改删数数库输入输出影响系统性关键素数库设计结构减少必冗余提高系统性
    常见数库类型关系型非关系型键值数库里采社区版关系型MySQL数库简单介绍MySQL现属Oracle旗产品分社区版商业版具开放源码特点较灵活成低非常流
    数库作系统数存储数仓库方便系统调添加修改删数数库输入输出影响系统性关键素数库设计结构减少必冗余提高系统性
    常见数库类型关系型非关系型键值数库里采社区版关系型MySQL数库简单介绍MySQL现属Oracle旗产品分社区版商业版具开放源码特点较灵活成低非常流
    数库重组成表表数存放样结构中表列行组成列列名代表类数类数求设置数类型包括字符整数浮点数文等行记录构成记录某数称字段字段设置允许空值必填建表唯标识通找表外键关系表唯标识
    面介绍积码系统需数表单包括数名列名数类型便读者更理解里列会数库字段类型先做出详细说明详见表31
    表31 Django数库字段类型
    数类型
    表示含义
    AutoField
    指够根ID增IntegerField系统默认键
    BooleanField
    真/假(truefalse)字段
    CharField
    字符串字段适中长度字符串
    DateField
    日期字段
    DateTimeField
    时间日期字段额外选项DateField
    FileField
    文件传字段
    FloatField
    浮点数
    ImageField
    FileField验证传象效图片
    IntegerField
    整数
    SmallIntegerField
    IntegerField 类似允许数库相关范围数值(通常32768+32767)
    TextField
    限长度文字长度
    TimeField
    时分秒时间显示
    ForeignKey
    外键关联模型创建关联索引
    ManyToManyField
    关联模型创建关联表
    OneToOneField
    字段关联表属性
    RichTextUploadingField
    富文需安装第三方赖包
    PositiveIntegerField
    正整数
    SlugField
    嵌条 段容简短标签段容包含字母数字划线连字符
    EmailField
    检查值否效电子邮件址 CharField

    331户角色表
    表31角色表包含角色类型户id两类数角色包括学生老师两选项户id作外键关联应户信息
    表 31角色表
    序号
    数名
    列名
    数类型
    1
    角色
    Role
    SmallIntegerField
    2

    User
    ForeignKey

    332户抽象类表
    表32户抽象类表包含姓名性创建时间更改时间描述等五类数记录户基信息作抽象类单独储存数库中实Django框架带户表包括账号密码邮箱等基础信息信息满足业务实际需需增加定义户表定制业务角色需信息里增加姓名性创建时间描述等特殊信息

    表 32户抽象类表
    序号
    数名
    列名
    数类型
    1
    姓名
    Name
    CharField
    2

    Gender
    SmallIntegerField
    3
    创建时间
    Created
    DateTimeField
    4
    更改时间
    Modified
    DateTimeField
    5
    描述
    Description
    TextField

    333教师表
    表33教师表引户抽象类表基础信息外增添职称信息
    表 33教师表
    序号
    数名
    命名
    类型
    1

    User
    ForeignKey
    2
    职称
    Rank
    CharField

    334学生表
    表34学生表引户抽象类表基础信息外增添班级信息
    表 34学生表
    序号
    数名
    命名
    类型
    1

    User
    ForeignKey
    2
    班级
    Classes
    CharField

    335批量户生成文件表
    表35批量户生成文件表包括文件路径文件名创建状态等三类数表存储批量创建户文件果文件传创建状态会改已创建
    表 35批量户生成文件表
    序号
    数名
    命名
    类型
    1
    文件路径
    File
    FileField
    2
    文件名称
    Name
    CharField
    3
    创建状态
    Is_create
    CharField

    336课程表
    表36课程表包括课程名称班级课程描述公开状态老师学生等六类数课程表特点:课程属老师老师拥课程老师作外键课程包含学生学生课程数类型设置类
    表 36课程表
    序号
    数名
    命名
    类型
    1
    课程名称
    Cname
    CharField
    2
    班级
    Classes
    CharField
    3
    课程描述
    Description
    TextField
    4
    公开状态
    Opened
    SmallIntegerField
    5
    老师
    Teacher
    ForeignKey
    6
    学生
    Student
    ManyToManyField

    337文编辑抽象类表
    表37文编辑抽象类表包括正文创建时间修改时间文件路径等四类数表信息需作业表作答表引作抽象类单独储存数库中
    表 37文编辑抽象类表
    序号
    数名
    命名
    类型
    1
    正文
    Body
    RichTextUploadingField
    2
    创建时间
    Created
    DateTimeField
    3
    修改时间
    Modified
    DateTimeField
    4
    文件路径
    File
    FileField

    338作业表
    表38作业表包括标题摘发布时间作业状态组队状态浏览量课程id等七类数作业表特点课程作业作业属课程课程作外键
    表 38作业表
    序号
    数名
    命名
    类型
    1
    标题
    Title
    CharField
    2

    Slug
    SlugField
    3
    发布时间
    Published
    DateTimeField
    4
    作业状态
    Status
    CharField
    5
    组队状态
    Group
    SmallIntegerField
    6
    浏览量
    Views
    PositiveIntegerField
    7
    课程
    Course
    ForeignKey

    339作答表
    表39作答表包括作者课程作业分数等四类数作答表特点作业次作答次作答属作业应作者课程分数老师评定
    表 39作答表
    序号
    数名
    命名
    类型
    1
    作者
    Author
    ForeignKey
    2
    课程
    Course
    ForeignKey
    3
    作业
    Homework
    ForeignKey
    4
    分数
    Score
    IntegerField

    3310评表
    表310评表包括户名称评容作业id评时间等四类数评表特点份作业评条评属作业作业设外键
    表 310评表
    序号

    命名
    类型
    1
    户名称
    Username
    CharField
    2
    评容
    Text
    TextField
    3
    作业
    Homework
    ForeignKey
    4
    评时间
    Created
    DateTimeField

    3311组队表
    表311分组表包括领队课程成员编辑状态等四类数老师课学生分组老师相领队成员设置编辑编辑两种状态
    表 311组队表
    序号

    命名
    类型
    1
    领队
    Leader
    ForeignKey
    2
    课程
    Course
    ForeignKey
    3
    成员
    Member
    ManyToManyField
    4
    编辑状态
    Edit
    SmallIntegerField

    3312代码表
    表312代码表包括学生课程作业创建时间更改时间代码量编程语言等七类数作答表逻辑类似份作业代码表积码系统常功代码量统计报告数库调频繁代码信息单独成表空间换时间提高检索速度
    表 312代码表
    序号

    命名
    类型
    1
    学生
    Student
    ForeignKey
    2
    课程
    Course
    ForeignKey
    3
    作业
    Homework
    ForeignKey
    4
    创建时间
    Created
    DateTimeField
    5
    更改时间
    Modified
    DateTimeField
    6
    代码量
    Code
    IntegerField
    7
    编程语言
    Language
    CharField

    3313邮箱验证
    表313邮箱验证包括验证码邮箱发送时间否效等五类数实Django带邮件发送函数功里想更加定义创建应邮箱验证表验证码存储发送目标邮箱机验证码邮箱目标邮箱发送时间记录效时间户名户姓名果发送验证码效时间效状态修改False
    表 313邮箱验证表
    序号

    命名
    类型
    1
    验证码
    Code
    CharField
    2
    邮箱
    Email
    EmailField
    3
    发送时间
    Send_time
    DateTimeField
    4
    户名称
    Username
    CharField
    5
    效状态
    Active
    BooleanField


    3314 总体数ER关系图
    根13节述数表结构关系绘制出积码系统总体数ER关系图[4]详见图33
    图 33 积码系统总体数ER图
    34 业务流程
    户端流程台理员端流程相显更重节讨户端流程包括户端流程户基业务流程特定角色业务流程通流程阐述进步读者整系统基认识

    341户端流程基业务
    户端流程角色分两条支线参图34户端流程图户登录开始户进入页系统根户身份分学生业务老师业务两业务点称户基业务包括户登录登出查信息修改描述修改密码修改邮箱等五业务
    图 34 户端流程图

    图35描述查信息业务户选择业务开始页面显示信息包括户名邮箱描述性户角色户学生班级总代码量户老师职称进入业务选择修改信息


    图 35 查信息业务流程图




    图36修改密码流程图选择业务先输入原密码判断否正确正确进入步填写新密码错误选择重新输入退出填写新密码需符合三标准:1少6字符220字符3确认密码新密码致意项符合规定修改失败出现错误提示选择继续修改结束业务输入新密码符合三项规定系统更新密码结束业务


    图 36 修改密码流程图

    图37修改邮箱业务项业务涉外部第三方程序重点讲解系统部业务首先修改密码样需输入户原密码保证户进行操作密码验证通输入更换新邮箱时系统会先验证输入邮箱格式否正确XXX@XXXXXX户点击发送钮系统机生成验证码发送新邮箱户外部通登录新邮箱开验证码邮件获验证码页面输入验证码然系统判断验证码否效效系统更新户邮箱信息结束业务否提示错误户选择重新填写重新发送验证码重新填写新邮箱址者结束业务
    图 37 修改密码流程图
    图38修改描述流程图进入修改页面文输入框填写描述默认显示原容修改字数超200否修改失败显示错误提示户选择继续修改结束业务修改成功数库更新数然动跳转信息页面结束业务

    图 38 修改描述流程图

    342特定户业务流程
    户角色拥基业务学生户进行加入课程交作业查代码量报告等业务老师户创建课程发布作业传视频等业务面选取部分业务进行讲解读者类剩余业务流程
    图39加入课程业务学生加入公开课程
    图310交作业业务里学生需填写正文传作业文件没文空缺文件空缺系统动分析文件里代码文件代码量
    图311查代码量报告业务学生户查代码量报告两者流程较简单
    图312创建课程业务老师填写应课程信息然发布





    图 312 创建课程流程图


    35项目目录结构
    构建项目程中设计目录结构十分重Django框架包含应文件夹(项目名)子应文件夹(apps)静态文件夹(static)媒体文件夹(media)模板(templates)理文件(managepy)外加第三方插件理文件夹文(requirements)
    积码系统项目中英文命名:jicode项目目录图313示分8文件

    图 313 项目目录图

    首先子应文件夹(apps)部包含项目功模块:代码量分析(codeAnalysis)评(comment)课程(course)邮箱验证(emailVerify)学生分组(group)提交作业(handin)作业(homeworkapp)台理员(myadmin)户基(userBase)视频(video)详见图310
    应功划分遵循重原:单化功间复性提高达高聚低耦合效果
    图314中红框部分应功组成文件包括:python文件初始化(init)理员控制(admin)应命名(apps)表单验证(forms)数模型(models)测试(tests)路分发(urls)视图逻辑(views)中formsmodelsurlsviews四部件尤重般开发程model开始创建数模型然views编写功函数forms输入数验证urls里创建应views功函数路址读者回顾图31 DjangoMTV模式

    图 314 项目apps目录图

    接app目录里项目功集中点通常项目创建初建立说首设置文件夹通常命名项目名字中settingspy首编写文件settingspy中设置项目apps路径数库连接系统语言时间媒体路径静态文件路径第三方插件属性等重容文件较重容易出错节会积码系统setting容读者分享目录结构见图315

    图 315 项目app目录图
    媒体静态文件媒体文件夹通常负责集中户传文件静态文件夹(static)模板页面会脚语言(js)样式表(css)图片(img)字体(fonts)第三方插件静态文件图316示

    图 316 项目static目录图

    面较重文件模板文件(templates)里负责系统前端页面apps应功划分功会调页面页面html文件html页面通应功urls址调需函数通 { load static } 行命令载入静态文件现开源前端框架[5]VueReactBootstrap[6]Angular等等令项目开发快速进行积码系统采基BootstrapjQuery制作hAdmin前端框架图317templates目录图
    三文件虚拟环境(venv)Django理文件(manage)第三方赖插件(requirements)VenvDjangopython虚拟环境构建项目时产生Manage初动生成文件理Django项目基功:创建项目创建应app开启服务器更新数库等等基础操作Requirements记录项目需全部第三方赖插件便项目迁移时重新安装环境

    图 317 项目templates目录图

    系统项目目录开发员明确分工减少突调高开发效率外系统界面设计蓝图进行开发前定整系统界面草图建造厦没施工图工法开工章继续讲解积码系统界面设计
    36系统界面设计
    节讲述系统八重模块界面设计中涉户端登录课程详情提交作业学生情况代码量统计报告台登录台页台增加作业描绘整系统风格读者带户体验说明积码系统续会更新列展现界面积码系统实际部署时样貌致风格相

    361户端界面
    户进入系统前首先进行登录图318风格流行扁化设计白色线条作背景底附加磁吸棒作点缀页面正中登录窗口包含登录户名密码忘记密码等字样颜色蓝色系统名字
    JiCode’登录框顶部居中颜色蓝色通体蓝白色调显较简约然
    图 318 户端登录界面

    户进入系统页面三部分组成左侧导航栏顶部信息栏右端体中左侧导航栏顶部信息栏系统中恒定变切换页面时右端体发生变化
    课程详细页面中分两部分:导航体课程导航根户身份分教师导航学生导航中教师导航:已发布作业发布作业添加作业分组情况创建分组学生已发布视频发布视频添加视频学生导航:作业提交作业全部视频
    图 319 老师课程详情界面
    老师进入课程详细页面默认选择已发布作业学生默认选择作业时右端体会列表式显示已发布作业详情某作业进行操作图319
    学生进入提交作业页面正文填写文框选择文件提交钮
    图 320 学生提交作业界面

    积码系统重特点代码量统计报告系统根户提交代码文件产生数进行统计分析通基echartspyecharts第三方插件形成视化报告报告容包括总代码量增长图惯编程语言分布饼图课程代码量分布直方图三方面学生提供参考价值判断编程学广度宽度详见图321
    图 321 学生代码量统计报告界面


    362台理端界面
    积码系统台端Django框架带台理通第三方插件simpleui优化界面simpleuitompeppa基elementui+vue开发django admin 题插件重写优化90页面django admin更符合国惯需修改原admin代码100兼容原生admin登录界面图322示
    图 322 台理端登录界面

    图323示台页侧栏显示理应功(app)基户认证授权体首页显示快捷操作动作顶栏包括户信息户端跳转题更换字体更换全屏显示等
    图 323 台理端页界面

    创建学生信息例选择学生表栏体会出现搜索栏增加删钮然学生信息列表式显示点击名字进行修改十分方便见图324
    图 324 台理端创建学生信息界面

    前端界面示台前端提供数计算?计算逻辑?章节继续讨积码系统核心代码设计思路实现

    37具体实现
    节积码系统部分核心代码设计思路具体实现讲解分三部分代码量分析视化二台系统三作业提交理

    371代码量分析
    进行代码量分析需先数库记录学生代码量数考虑数模型形式讨分析出三种形式:次作业量代码累加作学生属性入学生表中二学生拥属代码表记录项新增代码量记录三代码量新增记录聚集张表条记录包括作业课程学生信息
    进需思考数视化呈现结果包含新增代码量数目时间属课程属编程语言形式排学生属性中加入代码属性形式二学生数量2情况非常取会造成数库冗余拥挤选择形式三代码量新增数汇聚成张表代码量表然样会增加查找时间查找时间复杂度O(n)
    通分析提交代码作业份作业提交种类型编程语言文件里采字符串记录类数面代码量分析模型源码:
    # codeAnalysismodelspy
    from djangodb import models
    from appscoursemodels import Course
    from appshomeworkappmodels import Homework
    from appsuserBasemodels import Student

    #份作业条数插入
    class FileCodes(modelsModel)
    student modelsForeignKey(Student on_deletemodelsCASCADE)
    course modelsForeignKey(Course on_deletemodelsCASCADE)
    homework modelsForeignKey(Homework related_namefilecodes
    on_deletemodelsCASCADE)
    created modelsDateTimeField('创建时间' auto_now_addTrue)
    modified modelsDateTimeField('更改时间' auto_nowTrue)
    code modelsIntegerField('文件总代码量' default0)
    language modelsTextField('编程语言代码量' nullTrue)

    class Meta
    verbose_name 作业代码量
    verbose_name_plural verbose_name

    #定义编程语言代码文件缀
    file_ext {
    'py''Python' 'java''Java' 'c''C' 'cpp''C++' 'cc''C++' 'cs''C#'
    'bas''VisualBasic' 'js''JavaScript' 'php''PHP''html''HTML'
    'sql''SQL数库' 'mdb''SQL数库' 'dbf''SQL数库' 'mdf''SQL数库'
    'swift'Swift 'rb''Ruby' 'm''ObjectiveC' 'mm''ObjectiveC++'}

    #关联文件格式应编程语言
    def get_language(file_name)
    language file_ext
    if file_name in language
    return language[file_name]
    else
    return 'other'

    常编程语言单独做定义字典方便增加修改实际作业文件举例子见图325
    图 325 举例文件目录

    假设testphp文件代码量100行testjava文件代码量100行testpy文件代码量100行会FileCodes表中插入条数中language属性值:py_100java_100c_0cpp_0cc_0cs_0bas_0js_0php_100html_0sql_0
    mdb_0dbf_0mdf_0swift_0rb_0m_0mm_0nofind_0
    通python字符串分割(split)应编程语言代码量
    作业文件求传ZIP压缩文件减少存储空间二统格式里分三函数:
    1codes_create函数获取作业文件学生号作业号课程号然判断否更新数更新数库代码:
    def codes_create(files course_id student_id homework_id)
    pl {'code'0} #编程语言代码量累计字典
    for ext in file_ext
    pl[ext] 0
    filetocode(files pl) #搜寻函数

    # 压缩包含代码文件增增加数库记录
    if pl['code']>0
    language ''
    for ext in file_ext
    #文格式存储编程代码量
    language + ext+'_'+str(pl[ext])+''
    #新增数
    FileCodesobjectscreate(course_idcourse_idstudent_idstudent_id
    homework_idhomework_idcodepl['code']languagelanguage)

    2 filetocode函数解压zip包然搜寻代码文件遇见压缩包继续解压代码文件通计算函数获代码量代码:
    def filetocode(files language)
    f ZipFile(files 'r')
    for file in fnamelist()
    ext filesplit('')[1]lower()
    if ext 'zip'
    filetocode(fopen(namefile) language) #递查找
    elif ext in file_ext
    # 读方式开文件次读取行
    codeline fopen(namefile)readlines()
    #调代码行计算函数
    language[ext] + countcode(codeline)
    #累加作业总代码量
    language['code'] + language[ext]

    3 countcode函数定规计算代码行量编程语言书写规里简单判断非空行计算实际需求继续更改代码:
    def countcode(codeline)
    temp 0
    for line in codeline
    # 掉行头尾空白
    line linestrip()
    if not len(line)
    continue
    temp + 1
    return temp

    372代码量视化
    代码量数步数视化[7]MatplotlibPython做视化传统工具[8]优点快速简洁缺点图形样式固定交互效果终选定pyecharts生成 Echarts 图表类库Echarts 百度开源数视化 JS 库数视化图表库样式精美交互非常适合展示数前面章节提代码量报告三部分:总代码量增长折线图编程语言分布饼图课程代码量分布直方图面具体讲解三部分代码实现

    1总代码量增长折线图效果见图326里数学生天单位代码量然需计算出增长量累计量时间序早晚面具体代码实现:
    user get_object_or_404(User pkpk) #获户id
    student userrolestudentid #获户学生id
    codes FileCodesobjectsfilter(studentstudent) #获学生全部代码量数

    '''折线图'''
    # 设置折线图标题位置
    data_total []
    data_increment []
    data_time []
    data_tem {}

    # 数预处理
    for data in codes
    if datacreateddate() not in data_tem
    data_tem[datacreateddate()] 0
    data_tem[datacreateddate()] + datacode
    #日期早晚排序
    data_tem sorted(data_temitems()keylambda xx[0])
    total 0

    # 数封装
    for i in data_tem
    total + i[1]
    data_totalappend(total)
    data_incrementappend(i[1])
    data_timeappend(i[0])
    line Line(总体 '代码量(行)统计图' title_top'45' title_pos'1'
    title_text_size20)

    # 总量线
    lineadd(累计总量 data_time data_total
    is_datazoom_showTruedatazoom_type'both'line_width 2)

    # 增量线
    lineadd(日增量 data_time data_incrementis_label_showFalse
    legend_top'49' legend_pos'18'is_smoothTrue
    mark_point[max]line_width 2)

    图 326 代码量视化折线图
    2 编程语言分布饼图效果见图327里数学生编程语言单位代码量然需FileCodes数属性language里分割出编程语言代码分布情况面代码实现:
    '''饼图'''
    # 设置数
    data_language []
    data_language_code []
    data_tem {}

    # 数预处理
    for data in codes
    # 编程语言记录格式:'编程语言文件缀名' + '_' + ''
    language datalanguagesplit('')
    languagepop()
    for pl in language
    ext file_ext[plsplit('_')[0]] #缀转换名称
    code int(plsplit('_')[1])
    if ext not in data_tem
    data_tem[ext] 0
    data_tem[ext] + code
    # 数封装
    for i in data_tem
    if data_tem[i] 0
    data_languageappend(i)
    data_language_codeappend(data_tem[i])

    # 设置标题副标题标题设置居中设置宽度900
    pie Pie(编程语言 代码量分布图 title_top'1' title_pos'49'
    title_text_size20)
    # 加入数设置坐标位置7550方colums选项取消显示
    显示label标签
    pieadd(编程语言代码量 data_language data_language_code center['75'
    '28'] is_legend_showTrueis_label_showTrue
    radius[0'37']legend_orientverticallegend_pos'48'legend_top'12')
    图 327 代码量视化饼图

    3 课程代码量分布直方图效果见图328里数学生课程单位代码量简单读取FileCodes数coursecode属性面代码实现:
    '''柱状图'''
    data_course []
    data_course_code []
    data_tem {}

    # 数预处理
    for data in codes
    if datacoursecname not in data_tem
    data_tem[datacoursecname] 0
    data_tem[datacoursecname]+datacode
    # 数封装
    for i in data_tem
    data_courseappend(i)
    data_course_codeappend(data_tem[i])

    # 设置柱状图标题副标题
    bar Bar(课程 代码量(行)分布图 title_top'45' title_pos'50'
    title_text_size20)
    # 添加柱状图数配置项
    baradd(课程代码量 data_coursedata_course_code
    is_legend_showFalsemark_line[average]
    mark_point[max min] xaxis_rotate20)
    图 328 代码量视化直方图

    4 统布局折线图左饼图右直方图右学生简信息左定位code_analysishtml页面

    # 设置三图表相位置
    grid Grid(page_title'代码量统计报告'width'100'height'100')
    gridadd(line grid_height'35' grid_width'40' grid_bottom'10'
    grid_right'54')
    gridadd(bar grid_height'35' grid_width'40' grid_bottom'10'
    grid_right'5')
    gridadd(pie)
    gridadd(info)
    template loaderget_template('codeAnalysiscode_analysishtml')
    context dict(myechartgridrender_embed()
    script_listgridget_js_dependencies()

    373台系统
    积码台理Django带admin模块[9]操作十分便捷加simpleui题优化整台理界面优美交互性良
    首先更换语言时间默认英文需通settingspy里进行设置代码:

    LANGUAGE_CODE 'zhhans'
    TIME_ZONE 'AsiaShanghai

    安装djangosimpleui39 第三方插件添加settingspy
    INSTALLED_APPS栏代码:
    # Application definition
    INSTALLED_APPS [
    'simpleui' #插入admin面
    'djangocontribadmin'
    'djangocontribauth'
    ………
    ]
    'appsemailVerify'
    'appsgroup'
    'appshandin'
    'appshomeworkapp'
    'appsuserBase'
    'appsvideo'
    'appsmyadmin'
    'ckeditor'
    'ckeditor_uploader'
    ]

    然通命令:python managepy createsuperuser创建超级理员账号启动服务器通默认址1270018000admin进入台理端里增加台安全应url里更改admin址:path('738663luanmamyadmin' adminsiteurls)
    步进行理配置积码系统台理户课程作业视频里户理例户理分基础户(身份)老师户学生户
    单独台设置作应功myadmin便修改直接adminpy文件操作面老师信息理设置代码:

    class TeacherAdmin(adminModelAdmin)
    list_display ('name' 'ranks' 'gender' 'created' 'modified')
    list_per_page 5 # 设置页显示少条记录默认100条
    list_editable () # 设置默认编辑字段
    date_hierarchy 'created' # 详细创建分层筛选
    ordering ('created') # 设置默认排序字段负号表示降序排序
    inlines [
    CourseInline # InlineCourseInline关联进
    ]
    search_fields ('name') # 搜索字段

    adminsiteregister(Teacher TeacherAdmin) # 注册理器

    面代码表明台端显示老师表理理老师增删查改然体显示老师信息包括姓名职称性创建时间修改时间体页面显示5行记录创建时间排序编辑字段等等
    外注册理器变装饰器:@adminregister(Teacher)加类名面

    374 作业提交理
    作业提交理分创建提交修改提交删提交提交作业列表
    1创建提交学生两种类型作业提交:组作业属时提交成功会新增提交记录作业属组时中组员创建提交会新增全部组员提交记录提交程中调代码量分析模块代码:
    @method_decorator(login_required name'dispatch')
    class HandinCreate(CreateView)
    model Handin
    form_class HandinForm
    template_name 'handinhandin_formhtml'

    def form_valid(self form)
    homework Homeworkobjectsget(idselfkwargs['pk'])
    course Courseobjectsget(idselfkwargs['pkr'])
    file formcleaned_data['file']
    student selfrequestuserrolestudentid

    if homeworkgroup 0
    forminstancecourse course
    forminstancehomework homework
    forminstanceauthor selfrequestuserrolestudent
    # 更新课程代码量总代码量
    # 代码表增加
    codes_create(filecourse_idcourseid student_idstudent
    homework_idhomeworkid)
    return super()form_valid(form)
    else
    # 组作业提交全部提交
    forminstancecourse course
    forminstancehomework homework
    forminstanceauthor selfrequestuserrolestudent

    if Groupobjectsfilter(coursecourse memberselfrequestuserrolestudent)
    group Groupobjectsget(coursecourse member
    selfrequestuserrolestudent)memberall()
    for each in group
    if each selfrequestuserrolestudent
    Handinobjectsget_or_create(coursecourse
    homeworkhomework authoreach)
    # 代码表增加
    codes_create(file course_idcourseid
    student_ideach homework_idhomeworkid)
    return super()form_valid(form)
    else
    forminstancecourse course
    forminstancehomework homework
    forminstanceauthor selfrequestuserrolestudent
    # 代码表增加
    codes_create(file course_idcourseid
    student_idstudent homework_idhomeworkid)
    return super()form_valid(form)

    2修改提交学生重新传文件文系统会删前旧记录
    @method_decorator(login_required name'dispatch')
    class HandinUpdate(UpdateView)
    model Handin
    form_class HandinForm
    template_name 'handinhandin_formhtml'


    def form_valid(self form)
    file formcleaned_data['file']
    homework selfkwargs['pkr']
    course selfkwargs['pka']
    student selfrequestuserrolestudentid
    # 代码表更新
    FileCodesobjectsfilter(course_idcourse
    student_idstudent homework_idhomework)delete()
    codes_create(file course_idcourse
    student_idstudent homework_idhomework)
    return super()form_valid(form)

    3删提交直接数库中删提交作业列表里作业状态修改未提交代码:
    @method_decorator(login_required name'dispatch')
    class HandinDelete(DeleteView)
    model Handin

    def get_success_url(self)
    return reverse_lazy('homeworkapphomework_list'
    args[str(selfkwargs['pka'])])

    def get_object(self querysetNone)
    homework idselfkwargs['pkr']
    course selfkwargs['pka']
    student selfrequestuserrolestudentid
    #selfkwargs['pk']id号'pkr'homework_id 'pka'course_id号
    # 代码表删
    FileCodesobjectsfilter(course_idcourse student_idstudent
    homework_idhomework)delete()

    obj super()get_object(querysetqueryset)
    if objauthor selfrequestuserrolestudent
    raise Http404()
    return obj

    def get(self request *args **kwargs)
    return selfpost(request *args **kwargs)

    4 提交作业列表显示需提交作业列表标题包括作业名发布时间查详情提交状态评分代码:
    class HandinDetail(DetailView)
    model Handin
    template_name handinhandin_detailhtml

    def get_context_data(self **kwargs)
    context super()get_context_data(**kwargs)
    homework Homeworkobjectsget(idselfkwargs['pkr'])
    contextupdate({
    'homework' homework
    })
    return context

    @method_decorator(login_required name'dispatch')
    class HandinList(ListView)
    paginate_by 5
    template_name 'handinhandin_listhtml'

    def get_queryset(self)
    return Homeworkobjectsget(idselfkwargs['pk'])handinall()

    @method_decorator(login_required name'dispatch')
    class HandinListDone(ListView)
    template_name 'handinhandin_list_donehtml'
    paginate_by 5

    def get_queryset(self)
    return Handinobjectsfilter(course__idselfkwargs['pk'])filter(
    authorselfrequestuserrolestudent)order_by('id')
    def get_context_data(self **kwargs)
    context super()get_context_data(**kwargs)
    course Courseobjectsget(idselfkwargs['pk'])
    if Groupobjectsfilter(coursecourse
    memberselfrequestuserrolestudent)
    group Groupobjectsget(coursecourse
    memberselfrequestuserrolestudent)memberall()
    else
    group ''
    contextupdate({
    'course' course
    'group' group
    })
    return context
    总说Django框架实现模块功语句规较易懂够快手通讲解展示部分核心代码览积码系统整代码风格逻辑希读者带定参考价值
    4系统部署
    系统设计实现般会直接开发员电脑供户需部署台保证会素影响系统运行方便测试员模拟真实户体验然台组建选择云台服务提供商进行租赁截止2020年市面已家云台服务提供商国外包括亚马逊谷歌等国阿里百度腾讯等数量非常家云台服务提供商首先旗产品提供设备台次闲置资源做租赁服务暂时考虑系统数会会云台提供商非法获取安全性言定保障特阿里云阿里旗支付宝广泛支付安全必须保障服务器防御力弱根积码系统项目安全类型成考虑终选择国阿里云台进行租赁章讨阿里云台部署系统性优化方案
    41 阿里云部署
    首先选择购买租赁阿里云轻量应服务器配置:1核CPU2G存40G硬存预设基LinuxUbuntu操作系统(命令行界面)购买成功会公网址私网址通公网址访问预设Linux系统
    刚系统时般修改系统Root户密码进入阿里云服务器控制台修改外开放端口号范围修改基础配置安装积码系统环境
    首先安装Python37语言环境Pyenv版理Virtualenv虚拟环境Screen理会话软件Python积码项目编写语言Pyenv理Python版工具Virtualenv项目系统搭建Python虚拟环境环境里没第三方赖包非常干净Screen保持项目24时运行理窗口软件
    然通PyenvVirtualenv创建属积码系统Python37工作环境取名jicode
    然Linux通SCP命令传输整项目文件指定目录里MAC OS系统属Linux系统读者系统Windows工具WinSCP
    项目传输启动jicode虚拟环境命令加载项目根目录Requirementstxt文件安装项目需第三方赖包
    尝试runserver命令启动项目注意请执行python managepy runserver 0000端口号添加0000够意局域网访问站点填默认127001访问端口号前修改端口范围填写注意端口占问题
    42 生产环境
    节阿里云部署流程致理清项目正式运行止里理清三概念:开发环境测试环境生产环境web系统开发程般先开发测试终线程应环境服务器台
    开发环境开发员会专门开发服务器开发调试方便配置较会开全部错误报告
    测试环境服务器配置会生产环境相模拟真实户体验测试出系统程中发生问题
    生产环境里会够支持高发高性服务器关闭错误报告启错误日志环境称作真实环境
    补充说明错误报告服务器错误报告指系统进行操作程中出现Bug错误时系统会动跳转错误报告页面份报告里会包括错误点错误类型传输数部源码般方便开发员寻找漏洞功服务器指web服务器浏览器等web客户端提供网站文档文件数供户意浏览载说静态文件
    出三环节中开发环境生产环境区Django框架两环境配置选项开发环境中Django会启动带WSGI单线程服务器供开发者需额外配置会动功模块目录搜索调静态文件生产环境中Django会关闭带动搜索静态文件功开发者应文件统放置根目录供高性服务器调Django提供应收集命令
    明白环境部署线生产环境选择行方案通分析已Apache Nginx IIS三流服务器选择Nginx作生产服务器免费开源占存少发力强适Linux系统具负载均衡服务种强反代理服务器选定服务器连接Django需网关接口简单说负责双方进行沟通桥梁协议Django带WSGI种通信协议沟通web应程序(Django)uwsgi种线路协议nginx等代理服务器进行通信提http种超文传输协议uWSGI时实现WSGIuwsgihttp等三种协议web服务器更说明组件相互作请图 41 生产环境示意图
    剩设置搭建uWSGINginx读者uWSGIdocs网站文章[10]解具体教程篇幅容安排里做叙述系统言结合途成考虑搭建测试环境模拟真实户体验实生产环境高度相似

    图 41 生产环境示意图

    5结
    51 总结课题成果
    课题围绕解决代码量统计问题设计开发积码系统系统具核心功代码量统计报告外扩展课程理作业理练等功搭配台理系统部署云端样仅够学生记录编程学情况老师更掌握学生学进程总体达辅助编程学效果
    52 未展
    积码系统定位编程学辅助工具现核心功代码量统计分析绪里提判断编程水三维度:编写代码进度程序质量总代码量找积码系统未发展两方校线判题系统进行信息享获取学生答题程中时间准确率评估编写代码速度程序质量二提高程序代码量判定条件现判定条件空效行数日针编程语言规添加注释行判定
    两点外未丰富学资料功增加线视频点播教师视频直播等检索收集更计算机相关知识教程外增强讨问答功学者更进行交流
    应扩展方面想提工智技术[11]API接口[12]应实型系统软件重性工智技术API开发解决中台研发技术问题开发者更专注思考工智技术系统相结合创造技术更应场景积码系统质偏2B类产品[13]注重解决提高学编程效率需求围绕提高学效率做出构想:语音识[14]机器翻译[15]相结合视频点播直播动生成字幕二通图识[16]文字识[17]编写代码程序获取建立数模型综合分析代码程序质量出评定等级修改建议等
    安全性方面谈点现系统范围仅限学校部果程中觉编程学定作价值考虑推校外士时需进行系统性安全性提高性言增加服务器数量进行分布式存储利负载均衡提高发量安全性需增加网络理员系统日常维护理设置蜜罐监测添补漏洞等
    参考文献
    [1] 蒋宗礼 基教学质量国家标准科计算机类专业应型培养思考[J] 中国学教学2015(5)1821
    [2] 张宝元 基Django学生综合成绩理台设计实现[D] 天津学 2016
    [3] 杨武帅万启元桑贤伯等 基PythonDjango框架物联网智设备理系统设计实现[J] 中国新技术新产品2018(11)1315
    [4] Chen PPS The EntityRelationship ModelToward a Unified View of Data[J] ACM Transactions on Database SystemsMar19761936
    [5] 严春燕戴仕明 基框架web前端(BootstrapMUI)较[J] 网络安全技术应2017 (4) 8384
    [6] 谈华宇吴昶成邱基Bootstrap框架动态表单设计实现[J] 线互联科技201541(3)99100
    [7] 胡非韩永辉许超周巧妮基Python视化工具研究应[J] 工程技术研究2018132526
    [8] 胡晓燕 基Python视化数分析台设计实现[J] 信息电脑理版2018(17)9697
    [9] 陈衍鹏杜家兵 基框架理界面动生成模块设计实现[J]动化仪器仪表2018(5)
    [10] uWSGInginx设置Djangoweb服务器 httpsuwsgidocszhreadthedocsiozh_CNlatesttutorialsDjango_and_nginxhtml
    [11] 尹超马竹娟 工智技术应发展[J] 赤峰学院学报然科学版 201733(5)2728
    [12] 李正吴敬征李明树等 API 关键问题研究∗[J] 软件学报201829(6)17161738
    [13] 邓晓进浪鹰 SaaS敲开餐饮8年:美团成行业公敌B端竞争模式升级[J]电脑报2019(16)
    [14] 孙阿利 基动态贝叶斯网络音视频语音识模型研究[D] 西北工业学2007
    [15] 王淼 基回复式神网络机器翻译技术研究应[D] 电子科技学 2018
    [16] 基深度学图识算法研究[D] 贵州学 2019
    [17] 高威威 基深度学然场景文字识[D] 安徽学 2019
    附录:积码系统赖工具包
    注:面列出积码系统赖工具包书写格式工具包名称工具包版号示:

    Django20
    Pillow530
    djangochunkedupload113
    djangockeditor590
    djangojsasset122
    djangosimpleui39
    xlrd120
    PyMysql092
    Unidecode111
    pytestrunner52
    pyecharts0511
    pyecharts_snapshot018
    mysqlclient146


    文档香网(httpswwwxiangdangnet)户传

    《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
    该内容是文档的文本内容,更好的格式请下载文档

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 50 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

    基于Vue+Django技术的电商网站的设计与实现

    该电商网站使用python框架django-rest-framework和前端框架vuejs开发,采用现在市面上大多数系统流行的浏览器/服务器模式结构。该项目需要使用vuejs框架开发前端界面,...

    3年前   
    929    0

    基于SpringBoot博客系统的设计与实现

     基于SpringBoot博客系统的设计与实现Design and implementation of bl...

    2年前   
    971    0

    基于opencv的车牌识别系统设计与实现

     基于opencv的车牌识别系统设计与实现 ...

    2年前   
    746    0

    基于SSH框架的图书管理系统的设计与实现

    基于SSH框架的图书管理系统的设计与实现基于SSH框架的图书管理系统摘 要 如今已经我们已经步入了信息时代,而在信息科技快速发展的形势下,网络现已成为我们工作和日常生活中必不可少的一部分...

    2年前   
    758    0

    基于web学生成绩管理系统设计与实现

    随着计算机技术在各行各业的广泛应用,将计算机技术应用到学校中去,将大大提高学校管理的效率。学生成绩管理系统将在提高学校管理效率中发挥重要作用。

    3年前   
    945    0

    基于ARM的智能电子秤系统的设计与实现

    随着现代社会的发展,对称重技术提出了更高的要求。目前,台式电子秤在商业贸易中的使用已相当普遍,但是仍存在较大的局限性:体积大、成本高、需要工频交流电源供应、携带不便、应用场所受到制约。现有的便携...

    3年前   
    1161    0

    基于JavaWeb的图书管理系统的设计与实现

    有效的处理想要的相关信息和如何传播有效的信息,一直是人类不断探索的动力。信息管理运用各种载体,传播通过各种介质,一直伴随着人类文明的发展史。随着互联网的到来,信息传播与管理都上升了一个新的台阶,...

    3年前   
    1132    0

    基于SSM的图书管理系统设计与实现

    随着时代的进步和科技的发展,更多的人通过图书馆借阅书籍来吸收知识,而传统的图书管理方式存在着许多不方便的地方,记录易丢失,所以开发一个易操作,高便捷性并且能够提升工作效率的图书管理系统是很有必要的。

    3年前   
    1646    0

    基于JSP的网上书店推荐系统设计与实现

    本系统旨在设计一个网上的书店和书籍相关信息的服务网站,网站的基本运作流程如下:

    3年前   
    571    0

    基于JAVA WEB的考勤系统设计与实现

    基于 JAVA WEB 的考勤系统设计和实现Design and Implementation of Attendance System Based on JAVA WEB摘要科技的发展,带动...

    11个月前   
    364    0

    基于SpringBoot的新闻发布与管理系统的设计与实现

     基于SpringBoot的新闻发布与管理系统的设计与实现 ...

    2年前   
    796    0

    基于Java的图书馆座位管理系统的设计与实现

    目前,如何利用计算机系统来对座位进行管理是解决占座问题的关键。该图书馆座位管理系统是基于Java架构,采用Eclipse开发工具,使用SSM等前端开源框架,以MySQL为后台数据库,Tomcat...

    3年前   
    1848    0

    基于Java的网上购物系统的设计与实现

     XX 学 院 本科毕业论文(设计) 题 目 基于JAVA的网上购物 系统的设计与实现 院 系 计算机...

    5年前   
    2588    0

    基于android的物业管理系统的设计与实现19.8

     目录基于android的物业管理系统的设计与实现 3摘 要 3Android property managemengt system 5Abstract 51 绪论 61.1 选题背景 6...

    3年前   
    803    0

    基于JSP的小区物业管理系统的设计与实现

    在当今社会中,小区居住已经成为城镇居民居住的主要形式。小区物业管理的水平和手段成为决定小区质量和水平的重要因素。而人们对物业管理工作和物业服务的实现信息化的要求逐步提高。再者物业管理也存在复杂的...

    6年前   
    2696    0

    基于Client_Server的课件系统的设计与实现

    基于Client_Server的课件系统的设计与实现基于Client/Server 的课件系统的设计与实现 发布时间: 2004-03-09 作者:王昌达--江苏理工大学计算机科学系(江苏镇江...

    12年前   
    699    0

    基于SSM的民宿预订管理系统设计与实现

    基于SSM的民宿预订管理系统设计与实现Design and Implementation of Home Stay Reservation Management System Based on...

    2年前   
    1348    0

    基于JSP技术的酒店管理系统设计与实现

     基于JSP技术的酒店管理系统设计与实现 ...

    3年前   
    742    0

    基于SpringBoot技术的论坛系统设计与实现

    基于SpringBoot技术的论坛系统设计与实现 Design and implementation of ...

    2年前   
    1730    0

    基于VueNode酒店管理系统的设计与实现

    旅游业的繁荣和各地地区经济程度都随着现在社会高速发展,人们有更多时间和能力前往世界各地旅游或者出差办公,这时候一个高效成熟的酒店管理系统可以快速帮助旅客完成开住退预约房等各式操作,不仅节约酒店方...

    3年前   
    690    0

    文档贡献者

    平***苏

    贡献于2023-05-30

    下载需要 50 香币 [香币充值 ]
    亲,您也可以通过 分享原创文档 来获得香币奖励!
    下载文档

    该用户的其他文档