Django实战项目-学习任务系统-定时任务管理

这篇具有很好参考价值的文章主要介绍了Django实战项目-学习任务系统-定时任务管理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

接着上期代码框架,开发第4个功能,定时任务管理,再增加一个学习定时任务表,主要用来设置周期重复性的学习任务,定时周期,定时时间,任务标题和内容,预计完成天数,奖励积分和任务状态等信息。

现实中学习一门课程或一项技能知识,需要很长时间的学习积累才能学会,不像小说世界,游戏世界等虚拟世界,可以快速学会一项技能知识。

所以学习任务系统最重要的是周期重复性的学习任务,最好是每天做一次的任务,一点一点的累积,坚持几个月或几年,才能完成掌握一门课程或一项技能知识。

第一步:编写第4个功能-定时任务管理

1,编辑模型文件:

./mysite/study_system/models.py:

# 更多代码内容请关注weixin公众号: PandaCode辉


2,编辑urls配置文件:
./mysite/study_system/urls.py

# 更多代码内容请关注weixin公众号: PandaCode辉


3,编辑视图文件:
./mysite/study_system/views.py

def getDayTaskList(request):
    '''
    @方法名称: 获取定时任务列表
    @作    者: PandaCode辉
    @weixin公众号: PandaCode辉
    @创建时间: 2023-10-10
    '''
    # 响应容器
    rsp_dict = {}
    # 获取当前用户名
    username = request.session.get('username')
    # 根据用户名获取用户对象
    cur_user = StudyUser.objects.get(username=username)
    print('根据用户名查询用户对象:' + str(cur_user))

    user_list = [cur_user]
    # 如果当前用户是:3-学生,则查找对应辅导员用户
    if cur_user.role == 3:
        parent_id = cur_user.parent_id
        # 根据用户ID获取用户对象
        parent_user = StudyUser.objects.get(user_id=parent_id)
        print('根据用户ID获取用户对象:' + str(parent_user))
        user_list = [cur_user, parent_user]
    # 获取待完成任务列表,限制发布人
    data_list = StudyScheduledTask.objects.filter(created_by__in=user_list).order_by('-pk')
    
    # 查询待完成任务列表
    rsp_dict['data_list'] = data_list

    context_object_name = "scheduled_task_list"
    template_name = "study_system/home.html"
    rsp_dict['html_file'] = 'study_system/task/dayTaskList.html'
    rsp_dict['context_object_name'] = context_object_name

    return render(request, template_name, rsp_dict)


def toNewDayTask(request):
    '''
    @方法名称: 跳转到新增定时务视图
    @作    者: PandaCode辉
    @weixin公众号: PandaCode辉
    @创建时间: 2023-10-10
    '''
    rsp_dict = {}
    rsp_dict["pageTitle"] = "新增定时任务"
    # 'html_file': 'xxx.html' 动态指定模板页面 ; 'menuTo': 'task' = 任务管理 ;
    rsp_dict['html_file'] = 'study_system/task/addDayTask.html'

    return render(request, "study_system/home.html", rsp_dict)


def addNewDayTask(request):
    '''
    @方法名称: ajax请求, 表单视图,新增定时任务
    @作    者: PandaCode辉
    @weixin公众号: PandaCode辉
    @创建时间: 2023-10-10
    '''
    # 初始化响应容器
    rsp_dict = {"result": "error", "errorMsg": "系统错误"}
    # 是否ajax请求
    if request.is_ajax():
        try:
            rest = request.POST
            schedule_type = rest['scheduleType']
            task_title = rest['taskTitle']
            task_type = int(rest['taskType'])
            task_description = rest['taskDescription']
            reward_points = int(rest['rewardPoints'])
            deadline_days = int(rest['deadlineDays'])
            phone_num = rest['phoneNum']
            scheduleDay = rest['scheduleDay']
            scheduleTime = rest['scheduleTime']
            # 定时时间 拼接日期时间
            schedule_time = scheduleDay + " " + scheduleTime
            # 获取当前用户名
            username = request.session.get('username')
            # 根据用户名获取用户对象
            cur_user = StudyUser.objects.get(username=username)
            print('根据用户名查询用户对象:' + str(cur_user))
            # 创建者ID,使用 StudyUser 对象赋值
            created_by = cur_user

            # 今天
            # UTC格式当前时区时间
            t = time.localtime()
            work_date = time.strftime("%Y-%m-%d %H:%M:%S", t)
            print('当前日期时间:' + str(work_date))

            # 创建对象并保存到数据库
            studyScheduledTask = StudyScheduledTask(task_type=task_type, schedule_type=schedule_type,
                                                    schedule_time=schedule_time.strip(), task_title=task_title,
                                                    task_description=task_description, reward_points=reward_points,
                                                    deadline_days=deadline_days, phone_num=phone_num,
                                                    created_time=work_date, update_time=work_date,
                                                    created_by=created_by)
            # 保存到数据库是否成功
            studyScheduledTask.save()
            rsp_dict["result"] = "success"
        except Exception as e:
            rsp_dict["errorMsg"] = "新增定时任务保存到数据库失败."

    # 成功与否都返回json数据格式
    return JsonResponse(rsp_dict)

4,编辑页面模板代码:

4.1. 定时任务列表页面
./mysite/study_system/templates/study_system/task/dayTaskList.html

# 更多代码内容请关注weixin公众号: PandaCode辉

4.2. 添加定时任务页面
./mysite/study_system/templates/study_system/task/addDayTask.html

# 更多代码内容请关注weixin公众号: PandaCode辉


第二步:运行测试-任务管理功能

1,登录用户后,点击查看定时任务列表页面

Django实战项目-学习任务系统-定时任务管理,Python,学习

 2,新增定时任务页面

Django实战项目-学习任务系统-定时任务管理,Python,学习

 循环周期:可以选择每天1次,定时1次,每周几1次,常用的还是每天1次周期。

Django实战项目-学习任务系统-定时任务管理,Python,学习

 -------------------------------------------------end -------------------------------------------------文章来源地址https://www.toymoban.com/news/detail-715425.html

到了这里,关于Django实战项目-学习任务系统-定时任务管理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Django实战项目-学习任务系统-自定义URL拦截器

    接着上期代码框架,6个主要功能基本实现,剩下的就是细节点的完善优化了。 首先增加URL拦截器,你不会希望没有登录用户就可以进入用户主页各种功能的,所以增加URL拦截器可以解决这个问题。 Django框架本身也有URL拦截器,但是因为本系统用户模型跟Django框架本身用户模

    2024年02月06日
    浏览(29)
  • 复习之系统定时任务及延迟任务

    at  +时间 :具体时间设定延迟任务 设定成功后“ ctrl + d \\\"发起任务,\\\" ctrl + c \\\" 取消。 at  -l  :查看延迟任务 at  -c  1 :查看序号为1 的延迟任务的内容 at  -r  1 :取消序号为1 的延迟任务 at  now+1min : 设定1分钟后的延迟任务 ------------------------------------------------------实验-

    2024年02月16日
    浏览(27)
  • crontab -e 系统定时任务

    crontab 是由 “cron” 和 “table” 两个单词组成的缩写。其中,“cron” 是一个在 Linux 和类 Unix 操作系统中用于定时执行任务的守护进程,而 “table” 则是指一个表格或者列表,因此 crontab 就是一个用于配置和管理定时任务列表的命令。 crontab -e 是一个用于编辑 crontab 文件的命

    2024年02月13日
    浏览(43)
  • crontab做系统定时任务命令

    给系统设置一个定时的任务,相当于一个闹钟 我们每天的0点去做一些清理工作,自检工作,重要数据存盘备份工作,一个组里面很多同时都在提交代码,git作为代码管理工具,每一天都可能使用git仓库里面的代码 用里面的代码做一个打包,生成当成哦我们软件的一个版本,

    2024年02月06日
    浏览(37)
  • 在linux系统中如何设置定时任务

    前言: 在linux日常运维过程中我们常常需要在指定时间段自动停止或启动某个服务我们不可能人为的手动去执行,这时候我们就可以给对应的任务设置一个定时。后面我就可以将周期性的、规则的工作交给定时任务去完成。 **一次性任务:**顾名思义就是该任务只执行一次,

    2024年02月10日
    浏览(43)
  • 如何在linux系统中设置定时任务?

    1. 引入 1.1 在日常开发中,我们经常需要设置一些定时任务。 举个栗子:在进行Java Web开发时,通常我们采用Springboot 框架,我们可以通过 注解+ cron表达式,设置定时任务。 1.2实现方式: 1.在springboot项目启动类上,添加 @EnableScheduling 注解; 2.在需要设置定时任务的方法上,

    2024年02月02日
    浏览(35)
  • Linux 系统中查看和停止删除定时任务

    在Linux或类Unix系统中,通常使用crontab命令在指定的时间执行一个shell脚本或者一系列Linux命令,也就是通常所说的定时任务。 crond crond 是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此

    2024年02月09日
    浏览(27)
  • 部署问题集合(二十二)Linux设置定时任务,并设置系统时间

    因为项目中经常用到定时任务,特此总结记录一下 大部分虚拟机创建后就自带定时服务,直接用命令就好 编辑定时任务: crontab -e ,在该文件下添加如下内容 开机自启: @reboot /home/autoRun.sh 定时执行: 0 0 * * * /home/sutoRun.sh (凌晨十二点执行) 时间后也可以接命令 若要在该

    2024年02月11日
    浏览(29)
  • Linux命令-batch命令(在系统不繁忙的时候执行定时任务)

    batch命令 用于在指定时间,当系统不繁忙时执行任务,用法与at相似。 日期时间:指定任务执行的日期时间。

    2024年02月22日
    浏览(32)
  • HAL STM32基于系统滴答定时器(SysTick)实现多任务时间片轮询

    📑RTOS(实时操作系统)和定时器时间片轮询是两种不同的任务调度和执行方式的差异简介 🔖 以下部分内容,由AI给出的解答: 🔖RTOS(实时操作系统): 🌿RTOS是一种专门设计用于实时系统的操作系统,它可以有效地管理多个任务,提供任务调度、同步和通信等功能。 🌿

    2024年02月21日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包