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分割和拼接字符串
Nov 01 Python
Python中tell()方法的使用详解
May 24 Python
pyqt5自定义信号实例解析
Jan 31 Python
Windows 7下Python Web环境搭建图文教程
Mar 20 Python
python 删除列表里所有空格项的方法总结
Apr 18 Python
python TKinter获取文本框内容的方法
Oct 11 Python
Python XML转Json之XML2Dict的使用方法
Jan 15 Python
Django框架封装外部函数示例
May 28 Python
用Python画小女孩放风筝的示例
Nov 23 Python
解决pycharm启动后总是不停的updating indices...indexing的问题
Nov 27 Python
Python自定义聚合函数merge与transform区别详解
May 26 Python
Python批量修改xml的坐标值全部转为整数的实例代码
Nov 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
PHP 5.0对象模型深度探索之绑定
2006/09/05 PHP
给初学者的30条PHP最佳实践(荒野无灯)
2011/08/02 PHP
$_GET['goods_id']+0 的使用详解
2013/06/06 PHP
PHP常用函数和常见疑难问题解答
2014/03/05 PHP
PHP数组遍历知识汇总(包含遍历方法、数组指针操作函数、数组遍历测速)
2014/07/05 PHP
非常全面的php日期时间运算汇总
2015/11/04 PHP
Yii统计不同类型邮箱数量的方法
2016/10/18 PHP
Laravel 实现密码重置功能
2018/02/23 PHP
CSS+JS构建的图片查看器
2006/07/22 Javascript
用js来获取上传的文件名纯粹是为了美化而用
2013/10/23 Javascript
javascript通过navigator.userAgent识别各种浏览器
2013/10/25 Javascript
js显示文本框提示文字的方法
2015/05/07 Javascript
javascript特殊文本输入框网页特效
2016/09/13 Javascript
老生常谈ES6中的类
2017/07/31 Javascript
vue.js指令v-for使用以及下标索引的获取
2019/01/31 Javascript
jQuery实现可编辑的表格
2019/12/11 jQuery
JavaScript实现简单贪吃蛇效果
2020/03/09 Javascript
vue+canvas实现移动端手写签名
2020/05/21 Javascript
Python 爬虫学习笔记之正则表达式
2016/09/21 Python
详解tensorflow实现迁移学习实例
2018/02/10 Python
Ubuntu下Anaconda和Pycharm配置方法详解
2019/06/14 Python
解决python super()调用多重继承函数的问题
2019/06/26 Python
Django中ORM找出内容不为空的数据实例
2020/05/20 Python
python算的上脚本语言吗
2020/06/22 Python
哪种Python框架适合你?简单介绍几种主流Python框架
2020/08/04 Python
python3.7.3版本和django2.2.3版本是否可以兼容
2020/09/01 Python
纯CSS3代码实现文字描边
2016/04/25 HTML / CSS
CK澳大利亚官网:Calvin Klein澳大利亚
2020/12/12 全球购物
JAVA的事件委托机制和垃圾回收机制
2014/09/07 面试题
经理秘书岗位职责
2013/11/14 职场文书
名企HR怎样看待求职信
2014/02/23 职场文书
5s标语大全
2014/06/23 职场文书
电力培训心得体会
2014/09/02 职场文书
公司委托书范本5篇
2014/09/20 职场文书
2014年小学语文工作总结
2014/12/20 职场文书
MySQL中utf8mb4排序规则示例
2021/08/02 MySQL