基于Python+Django的学生作业提交批改管理系统

news2024/11/25 22:39:40

在各学校的教学过程中,学生的作业管理是一项非常重要的事情。随着计算机多媒体技术的发展和网络的普及,“基于网络的学习模式”正悄无声息的改变着传统的教室学习模式,“基于网络的教学平台”的研究和设计也成为教育技术领域的热点课题。采用当前流行的B/S模式以及3层架构的设计思想通过Python技术来开发此系统的目的是建立一个配合网络环境的可以师生互动的电子作业提交与反馈的平台,这样可以有效地解决作业管理混乱的局面。本系统设计了3种角色:管理员,学生和教师。系统主要包括个人中心、学院管理、专业管理、班级管理、学生管理、教师管理、课程信息管理、作业布置管理、作业提交管理、作业批改管理等功能模块。

请添加图片描述
功能介绍
为了更好的去理清本系统整体思路,对该系统以结构图的形式表达出来,设计实现该学生作业管理系统的功能结构图如下所示:请添加图片描述
请添加图片描述

执行下面的命令来创建一个新的 Django 项目:
django-admin startproject myproject
命令行工具django-admin会在安装Django的时候一起自动安装好。
执行了上面的命令以后,系统会为Django项目生成基础文件夹结构。
现在,我们的myproject目录结构如下所示:
myproject/ <-- 高级别的文件夹
|-- myproject/ <-- Django项目文件夹
| |-- myproject/
| | |-- init.py
| | |-- settings.py
| | |-- urls.py
| | |-- wsgi.py
| ±- manage.py
±- venv/ <-- 虚拟环境文件夹
前端技术:nodejs+vue+elementui请添加图片描述
请添加图片描述
请添加图片描述

# coding:utf-8
__author__ = "ila"

from django.http import JsonResponse

from .users_model import users
from util.codes import *
from util.auth import Auth
import util.message as mes


def users_login(request):
    if request.method in ["POST", "GET"]:
        msg = {'code': normal_code, "msg": mes.normal_code}
        req_dict = request.session.get("req_dict")
        if req_dict.get('role')!=None:
            del req_dict['role']
        datas = users.getbyparams(users, users, req_dict)
        if not datas:
            msg['code'] = password_error_code
            msg['msg'] = mes.password_error_code
            return JsonResponse(msg)

        req_dict['id'] = datas[0].get('id')
        return Auth.authenticate(Auth, users, req_dict)


def users_register(request):
    if request.method in ["POST", "GET"]:
        msg = {'code': normal_code, "msg": mes.normal_code}
        req_dict = request.session.get("req_dict")

        error = users.createbyreq(users, users, req_dict)
        if error != None:
            msg['code'] = crud_error_code
            msg['msg'] = error
        return JsonResponse(msg)


def users_session(request):
    '''
    '''
    if request.method in ["POST", "GET"]:
        msg = {"code": normal_code,"msg":mes.normal_code, "data": {}}

        req_dict = {"id": request.session.get('params').get("id")}
        msg['data'] = users.getbyparams(users, users, req_dict)[0]

        return JsonResponse(msg)


def users_logout(request):
    if request.method in ["POST", "GET"]:
        msg = {
            "msg": "退出成功",
            "code": 0
        }

        return JsonResponse(msg)


def users_page(request):
    '''
    '''
    if request.method in ["POST", "GET"]:
        msg = {"code": normal_code, "msg": mes.normal_code,
               "data": {"currPage": 1, "totalPage": 1, "total": 1, "pageSize": 10, "list": []}}
        req_dict = request.session.get("req_dict")
        tablename = request.session.get("tablename")
        try:
            __hasMessage__ = users.__hasMessage__
        except:
            __hasMessage__ = None
        if __hasMessage__ and __hasMessage__ != "否":

            if tablename != "users":
                req_dict["userid"] = request.session.get("params").get("id")
        if tablename == "users":
            msg['data']['list'], msg['data']['currPage'], msg['data']['totalPage'], msg['data']['total'], \
            msg['data']['pageSize'] = users.page(users, users, req_dict)
        else:
            msg['data']['list'], msg['data']['currPage'], msg['data']['totalPage'], msg['data']['total'], \
            msg['data']['pageSize'] = [],1,0,0,10

        return JsonResponse(msg)


def users_info(request, id_):
    '''
    '''
    if request.method in ["POST", "GET"]:
        msg = {"code": normal_code, "msg": mes.normal_code, "data": {}}

        data = users.getbyid(users, users, int(id_))
        if len(data) > 0:
            msg['data'] = data[0]
        # 浏览点击次数
        try:
            __browseClick__ = users.__browseClick__
        except:
            __browseClick__ = None

        if __browseClick__ and "clicknum" in users.getallcolumn(users, users):
            click_dict = {"id": int(id_), "clicknum": str(int(data[0].get("clicknum", 0)) + 1)}
            ret = users.updatebyparams(users, users, click_dict)
            if ret != None:
                msg['code'] = crud_error_code
                msg['msg'] = ret
        return JsonResponse(msg)


def users_save(request):
    '''
    '''
    if request.method in ["POST", "GET"]:
        msg = {"code": normal_code, "msg": mes.normal_code, "data": {}}
        req_dict = request.session.get("req_dict")
        error = users.createbyreq(users, users, req_dict)
        if error != None:
            msg['code'] = crud_error_code
            msg['msg'] = error
        return JsonResponse(msg)


def users_update(request):
    '''
    '''
    if request.method in ["POST", "GET"]:
        msg = {"code": normal_code, "msg": mes.normal_code, "data": {}}
        req_dict = request.session.get("req_dict")
        if req_dict.get("mima") and req_dict.get("password"):
            if "mima" not in users.getallcolumn(users,users):
                del req_dict["mima"]
            if "password" not in users.getallcolumn(users,users):
                del req_dict["password"]
        try:
            del req_dict["clicknum"]
        except:
            pass
        error = users.updatebyparams(users, users, req_dict)
        if error != None:
            msg['code'] = crud_error_code
            msg['msg'] = error
        return JsonResponse(msg)


def users_delete(request):
    '''
    '''
    if request.method in ["POST", "GET"]:
        msg = {"code": normal_code, "msg": mes.normal_code, "data": {}}
        req_dict = request.session.get("req_dict")

        error = users.deletes(users,
            users,
            req_dict.get("ids")
        )
        if error != None:
            msg['code'] = crud_error_code
            msg['msg'] = error
        return JsonResponse(msg)

目录
1 绪论 1
1.1课题背景 1
1.2课题研究现状 1
1.3初步设计方法与实施方案 2
1.4本文研究内容 2
2 系统开发环境 4
2.1 使用工具简介 4
2.2 环境配置 4
2.3 B/S结构简介 4
2.4 MySQL数据库 5
2.5 框架介绍 5
3 系统分析 6
3.1系统可行性分析 6
3.1.1经济可行性 6
3.1.2技术可行性 6
3.1.3运行可行性 6
3.2系统现状分析 6
3.3功能需求分析 7
3.4系统设计规则与运行环境 8
3.5系统流程分析 8
3.5.1操作流程 8
3.5.2添加信息流程 9
3.5.3删除信息流程 10
4 系统设计 11
4.1系统设计主要功能 11
4.2数据库设计 11
4.2.1数据库设计规范 11
4.2.2 E/R图 11
4.2.3数据表 12
5 系统实现 25
5.1系统功能模块 25
5.2后台模块 27
5.2.1管理员功能模块 27
5.2.2用户功能模块 30
6 系统测试 33
6.1功能测试 33
6.2可用性测试 33
6.3性能测试 34
6.4测试结果分析 34
7结 论 35
参考文献 36
致 谢 37

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/84060.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ZeroTier实现内网穿透详细教程,其实5分钟就可以搞定

想看更详细的视频教程&#xff0c;推荐到哔哩哔哩上看&#xff1a;强大的内网穿透工具ZeroTier&#xff0c;随时随地远程访问家中NAS和其它设备&#xff01;没有公网IP也不怕_哔哩哔哩_bilibili 相信很多人都有远程连接家中设备的需求&#xff0c;如远程连接家中的NAS、Window…

基于JAVA的书舍管理系统的设计与实现

摘 要 随着图书馆规模的不断扩大&#xff0c;人流数量的急剧增加&#xff0c;有关图书馆的各种信息量也在不断成倍增长。面对庞大的信息量&#xff0c;就需要有书舍管理系统来提高图书馆工作的效率。通过这样的系统&#xff0c;我们可以做到信息的规范管理和快速查询&#xff…

python 算法加密

加密代码片段样例 文件名&#xff1a;iter_n.py import timedef iter_from_n(n):list_n []for index,value in enumerate(range(n)):list_n.append([index,value])return list_nif __name__"__main__":t1 time.time()iter_from_n(100000)t2 time.time()print (&…

精彩预告 | 美创科技与您线上相约第十三届中国数据库技术大会

12月14日~16日&#xff0c;由IT168联合旗下ITPUB、ChinaUnix两大技术社区主办的第13届中国数据库技术大会&#xff08;DTCC2022&#xff09;将在线上隆重召开。 作为一家在数据库技术领域深研探索十余年的厂商&#xff0c;美创科技持续专注推动数据库技术的发展与实践。此次大会…

在平台上便捷使用LS-DYNA的方式

LS-DYNA 由Livermore Software Technology Corporation (LSTC) 开发&#xff0c;是一种多用途的显式和隐式有限元和多物理场程序&#xff0c;用于分析结构的非线性响应&#xff1b;其全自动接触分析和广泛的材料模型使全球用户能够解决复杂的现实问题。 这里要注意的是&#x…

【Vue】Vue2基本使用

文章目录一、模板语法1、插值语法写法介绍2、指令语法写法介绍模板语法示例二、数据绑定介绍数据绑定示例效果三、初始化Vue时&#xff0c;data属性与el属性的两种写法el的两种写法data的两种写法演示案例四、MVVM模型介绍五、数据代理JS数据代理案例演示Vue数据代理介绍原理六…

汽车自动驾驶的L0-L5是什么意思?

一、问题 汽车L0、L1、L2、L3、L4、L5自动驾驶都是什么意思呢&#xff1f; 近年来「自动驾驶」对我们来说不再陌生&#xff0c;很多人虽然早有所闻&#xff0c;但是真不懂自动驾驶的L0、L1、L2、L3、L4、L5是什么意思&#xff0c;都有哪些功能&#xff0c;今天就来为大家科普一…

什么蓝牙耳机质量好?公认最好用的蓝牙耳机推荐

现如今&#xff0c;蓝牙耳机在人们的日常使用设备当中扮演着较为重要的角色。无论是听歌、玩游戏、追剧、通话等&#xff0c;都可以通过蓝牙耳机来实现。而蓝牙耳机因为摆脱了线的束缚&#xff0c;日常携带会更便捷。作为一名耳机发烧友&#xff0c;今天来给大家分享几款公认最…

[附源码]Python计算机毕业设计SSM基于大数据的超市进销存预警系统(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

7 种模型加权集成方法

# 7 种模型加权集成方法 不同任务 -> 不同加权方法 分类 类别投票概率值加权 回归 预测值加权 排序 排序次序加权 目标检测 预测结果NMS 语义分割 像素类别投票加权 集成学习 考虑 模型的多样性 多样性不足 -> 最终预测结果和单个模型类似。 模型的精度差异…

基于MATLAB开发AUTOSAR软件应用层模块-part12.AUTOSAR Dictionary-3 AUTOSAR dictionary界面介绍

本篇我们讲解下AUTOSAR工具箱的Dictionary界面,以及如何使用Dictionary编辑AUTOSAR的元素。 初识界面 打开AUTOSAR Dictionary方式见下图, 点击这个按钮,打开界面, 上图就是AUTOSAR Dictionary的便捷界面 1)AtomicComponnet,是SWC软件组件,一个模型就对应一个

作业-12.12【写注释,QT项目和对象对象树模型】

将QT项目中每个文件的每行代码自行注释一遍 #项目过程管理文件 QT core gui greaterThan(QT_MAJOR_VERSION, 4): QT widgets #所需的类库&#xff0c;超过4版本要加widgets CONFIG c11 #支持c11 # The following define makes your compiler emit warnings if you use…

MySQL 自定义函数一文读懂

MySQL函数 含义&#xff1a;一组预先编译好的SQL语句的集合&#xff0c;理解成批处理语句 1、提高代码的重用性 2、简化操作 3、减少了编译次数并且减少了和数据库服务器的连接次数&#xff0c;提高了效率。 存储过程与函数区别&#xff1a; 存储过程&#xff1a;可以有0个返…

内部群炸锅了,同事又删库了

事件起因 我们的系统中有数据导入的功能&#xff0c;可以把特定的格式的excel数据导入到系统中来 由于客户电脑的文件比较多&#xff0c;很多文件的名字也比较相近&#xff0c;客户在导入excel时选错了文件 这个错误的excel文件的格式恰好能被系统解析&#xff0c;客户也没及…

【专栏】实践篇08| All in docker!动手搭建Redis集群

关注公众号&#xff1a;【离心计划】&#xff0c;一起逃离舒适圈 Redis专栏合集 【专栏】01| Redis夜的第一章 【专栏】基础篇02| Redis 旁路缓存的价值 【专栏】基础篇03| Redis 花样的数据结构 【专栏】基础篇04| Redis 该怎么保证数据不丢失&#xff08;上&#xff09…

(附源码)Spring Boot的网上作业管理系统 毕业设计 612317

基于Spring Boot的网上作业管理系统 摘 要 科技进步的飞速发展引起人们日常生活的巨大变化&#xff0c;电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流&#xff0c;人类发展的历史正进入一个新时代。在现…

【正点原子FPGA连载】第三十三章OV5640摄像头HDMI显示实验 摘自【正点原子】DFZU2EG/4EV MPSoC 之FPGA开发指南V1.0

1&#xff09;实验平台&#xff1a;正点原子MPSoC开发板 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id692450874670 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html 第三十三章OV564…

02-Neo4j-CQL

02-Neo4j-CQL&#xff1a; 1、CQL简介 CQL代表Cypher查询语言。 像Oracle数据库具有查询语言SQL&#xff0c;Neo4j具有CQL作为查询语言。 Neo4j CQL 它是Neo4j图形数据库的查询语言。它是一种声明性模式匹配语言它遵循SQL语法。它的语法是非常简单且人性化、可读的格式。 …

具有成本效益的深度信任网络的智能LEACH的多级动态优化(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f468;‍&#x1f4bb;4 Matlab代码 &#x1f4a5;1 概述 能量利用率是能量受限无线传感器网络&#xff08;WSN&#xff09;的关键属性&#xff0c;它直接影响网络的寿命。LEACH&#x…

C++入门篇之 注释语法什么写

&#x1f4d2;博客主页&#xff1a; ​​开心档博客主页​​ &#x1f389;欢迎关注&#x1f50e;点赞&#x1f44d;收藏⭐留言&#x1f4dd; &#x1f4cc;本文由开心档原创&#xff01; &#x1f4c6;51CTO首发时间&#xff1a;&#x1f334;2022年12月12日&#x1f334; ✉…