Django ORM框架的定时任务如何使用详解


Posted in Python onOctober 19, 2017

前言

大家在Django项目开发过程中,是不是也经常遇到这样的场景:需要实现一个定时任务,但又不想脱离Django环境独立运行,如:还需要使用Django的ORM框架操作Models类、日志框架、复用已有配置/方法等等。

大部分同学,初次接触时首先想到的就是使用第三方插件,如:django-celery,django-crontab等等,我也不例外,但实际使用过程,总有诸多不爽,要么感觉大材小用,要么功能支持不完整,要么使用很繁琐。。。

多次尝试摸索后,发现Django已经帮我们实现了该功能,使用起来也是非常的方便易用。那就是利用django-admin自定义命令,使用它,就可以使用ORM框架对model进行操作,如:定时更新数据库,检测数据库状态….. 然后将自定义命令加入到crontab任务列表中即可。

使用方法:

Django为项目中每一个应用下的management/commands目录中名字没有以下划线开始的Python模块都注册了一个manage.py命令,例如:

Django ORM框架的定时任务如何使用详解

_private.py将不可以作为一个管理命令使用。

closepoll.py模块只有一个要求 ? 它必须定义一个Command类并扩展自Basecommand或其子类

Django ORM框架的定时任务如何使用详解

新的自定义命令可以使用python manage.py closepoll 调用。

这样,就可以将新的自定义命令加入到Linux crontab任务列表里实现定时任务的目的了。

总结:

用自定义新命令来实现定时任务,实际开发过程非常简单,但这个思路确实有让我眼前一亮,豁然开朗。到达成功的方法多种多样,只有想不到,没有做不到。能找到最方便,最易用,最能提高效率的方法才是提升开发效率的根本。

好了,以上就是这篇文章的全部内容了,本文还有许多不足,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
Python程序员开发中常犯的10个错误
Jul 07 Python
python处理图片之PIL模块简单使用方法
May 11 Python
Python import与from import使用及区别介绍
Sep 06 Python
python实现汽车管理系统
Nov 30 Python
python实现弹跳小球
May 13 Python
python实现共轭梯度法
Jul 03 Python
Python3环境安装Scrapy爬虫框架过程及常见错误
Jul 12 Python
Python实用库 PrettyTable 学习笔记
Aug 06 Python
Django结合ajax进行页面实时更新的例子
Aug 12 Python
Python 正则表达式爬虫使用案例解析
Sep 23 Python
如何通过安装HomeBrew来安装Python3
Dec 23 Python
详解python的xlwings库读写excel操作总结
Feb 26 Python
Python 2.x如何设置命令执行的超时时间实例
Oct 19 #Python
详解使用 pyenv 管理多个版本 python 环境
Oct 19 #Python
python3使用pyqt5制作一个超简单浏览器的实例
Oct 19 #Python
PyQt5利用QPainter绘制各种图形的实例
Oct 19 #Python
python连接数据库的方法
Oct 19 #Python
Python3使用PyQt5制作简单的画板/手写板实例
Oct 19 #Python
python里使用正则的findall函数的实例详解
Oct 19 #Python
You might like
destoon文章模块调用企业会员资料的方法
2014/08/22 PHP
简介WordPress中用于获取首页和站点链接的PHP函数
2015/12/17 PHP
PHP函数nl2br()与自定义函数nl2p()换行用法分析
2016/04/02 PHP
PHP常用操作类之通信数据封装类的实现
2017/07/16 PHP
PHP扩展Swoole实现实时异步任务队列示例
2019/04/13 PHP
javascript实现10个球随机运动、碰撞实例详解
2015/07/08 Javascript
基于JavaScript短信验证码如何实现
2016/01/24 Javascript
详细探究ES6之Proxy代理
2016/07/22 Javascript
jQuery实现弹出带遮罩层的居中浮动窗口效果
2016/09/12 Javascript
解决URL地址中的中文乱码问题的办法
2017/02/10 Javascript
Node.js之网络通讯模块实现浅析
2017/04/01 Javascript
微信小程序中显示html格式内容的方法
2017/04/25 Javascript
详解Angular之constructor和ngOnInit差异及适用场景
2017/06/22 Javascript
优雅的处理vue项目异常实战记录
2019/06/05 Javascript
js实现倒计时秒杀效果
2020/03/25 Javascript
vue实现公告栏文字上下滚动效果的示例代码
2020/06/16 Javascript
JS实现多选框的操作
2020/06/24 Javascript
Angular+ionic实现折叠展开效果的示例代码
2020/07/29 Javascript
Python 3.x 安装opencv+opencv_contrib的操作方法
2018/04/02 Python
python验证码识别教程之滑动验证码
2018/06/04 Python
详解python while 函数及while和for的区别
2018/09/07 Python
Django restframework 框架认证、权限、限流用法示例
2019/12/21 Python
Pytorch Tensor 输出为txt和mat格式方式
2020/01/03 Python
世界顶级足球门票网站:Live Football Tickets
2017/10/14 全球购物
Why we need EJB
2016/10/20 面试题
俞敏洪北大演讲稿
2014/05/22 职场文书
征兵宣传标语
2014/06/20 职场文书
工厂仓管员岗位职责范本
2014/07/17 职场文书
2014年重阳节老干部座谈会局领导发言稿
2014/09/25 职场文书
井冈山红色之旅心得体会
2014/10/07 职场文书
先进典型发言材料
2014/12/30 职场文书
奖励申请报告范文
2015/05/15 职场文书
《1942》观后感
2015/06/08 职场文书
2016春季运动会前导词
2015/11/25 职场文书
golang通过递归遍历生成树状结构的操作
2021/04/28 Golang
springboot用户数据修改的详细实现
2022/04/06 Java/Android