云计算期末作业项目:线上作业提交
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
 
 
 
caiwenyu 0ee3c4555f add readme 3年前
bin/云计算第一次作业 first commit 删除 3年前
static first commit 删除 3年前
templates first commit 删除 3年前
.gitignore gitignore 3年前
backend.py first commit 3年前
homeworkMetadata.xml first commit 3年前
readme.md add readme 3年前
studentList.csv first commit 3年前

readme.md

云计算期末作业

以下为云计算期末作业的readme

前提依赖

本项目在win下开发,基本上只使用原生python包。实际测试,centos平台,只需要安装python36和flask即可运行。

bootstrap文件在静态文件夹内,jquery和sweetalert2采用cdn直接联网加载。

运行

python backend.py

访问127.0.0.1:5000.(可能需要在app.run()内修改)

目录结构

  • template 存放flask所需要渲染的html文件
  • backend.py 后端程序,程序开头有部分常量定义
  • form.js 前端js文件
  • static 静态文件夹,放bootstrap和css样式库
  • bin文件夹 存放上传的文件,存放在对应文件夹内
  • homeworkMetadata.xml和studentlist.csv 两个辅助存储信息的文件,分别为作业和学生名单。

主要功能

服务器运行后,主要提供两个功能。

  • /根目录负责提交文件。
  • /admin/login负责管理员登陆。

学生端

上传文件

上传的文件会同一的命名,文件名带时间,所以多次提交会保留。

管理员端

token

访问和管理员相关的网页都需要token。在login登陆后会在session内存入token(也就是关掉标签页会需要重新登陆)。这是因为,由于技术有限,所以所有的admin操作均在一个标签页内,通过ajax来进行不刷新跳转。

token验证写在backend文件开头部分的log_require装饰器内。

账号和密码

admin账号和密码是硬编码在backend文件中,在backend文件login函数内。默认账号名admin,密码123456。

前后端交互

本项目的后端数据传递到前端,采用数据注入,即flask渲染html时直接注入数据。所以如需改变前端数据,请直接修改template文件内html文件。 前端到后端采用ajax,部分跳转功能实习是通过直接拉去html到本地并覆盖实现。

比如查看提交情况,就是直接比对上传文件夹和学生名单,然后将信息直接注入homework.html文件内。

作业xml

根节点为homeworks,子节点为homework。 homework有三个属性,名字,deadline和描述。

学生列表

存放在本地的csv文件,两列,学号和姓名。

admin内的导入功能是直接覆盖。

bin文件夹

为了安全考虑,backend内没有在删除homework条目时删除对应bin文件夹内文件夹,请手动删除。同时这里的文件夹异常检验(有条目但没有文件夹)没有写,手动删除文件夹可能导致异常,请注意。

模板html

采用flask语法。

其中最重要的展示提交情况就是传入了一个提交情况的列表。