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私有属性和方法实例分析
Jan 15 Python
浅析Python中的多进程与多线程的使用
Apr 07 Python
浅谈python中set使用
Jun 30 Python
python 简单的多线程链接实现代码
Aug 28 Python
Python中enumerate函数代码解析
Oct 31 Python
python中实现精确的浮点数运算详解
Nov 02 Python
Python3 伪装浏览器的方法示例
Nov 23 Python
Python实现的建造者模式示例
Aug 06 Python
解决pycharm运行程序出现卡住scanning files to index索引的问题
Jun 27 Python
18个Python脚本可加速你的编码速度(提示和技巧)
Oct 17 Python
基于tensorflow __init__、build 和call的使用小结
Feb 26 Python
一行Python命令实现批量加水印
Apr 07 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 读取和修改大文件的某行内容的代码
2009/10/30 PHP
Search File Contents PHP 搜索目录文本内容的代码
2010/02/21 PHP
php使用pdo连接mssql server数据库实例
2014/12/25 PHP
PHP生成json和xml类型接口数据格式
2015/05/17 PHP
Laravel框架生命周期与原理分析
2018/06/12 PHP
laravel框架实现为 Blade 模板引擎添加新文件扩展名操作示例
2020/01/25 PHP
8个超实用的jQuery功能代码分享
2015/01/08 Javascript
JS运动相关知识点小结(附弹性运动示例)
2016/01/08 Javascript
判断是否存在子节点的实现代码
2016/05/18 Javascript
js 上传文件预览的简单实例
2016/08/16 Javascript
微信小程序 加载 app-service.js 错误解决方法
2016/10/12 Javascript
微信小程序实现皮肤功能(夜间模式)
2017/06/18 Javascript
微信小程序使用audio组件播放音乐功能示例【附源码下载】
2017/12/08 Javascript
Angular 如何使用第三方库的方法
2018/04/18 Javascript
python 自动提交和抓取网页
2009/07/13 Python
分析Python编程时利用wxPython来支持多线程的方法
2015/04/07 Python
Python卸载模块的方法汇总
2016/06/07 Python
Python使用当前时间、随机数产生一个唯一数字的方法
2017/09/18 Python
解决win64 Python下安装PIL出错问题(图解)
2018/09/03 Python
python使用Matplotlib绘制分段函数
2018/09/25 Python
通过 Django Pagination 实现简单分页功能
2019/11/11 Python
Python建造者模式案例运行原理解析
2020/06/29 Python
Python requests上传文件实现步骤
2020/09/15 Python
Python通过len函数返回对象长度
2020/10/22 Python
python各种excel写入方式的速度对比
2020/11/10 Python
应届大学毕业生找工作的求职信范文
2013/11/29 职场文书
房屋转让协议书
2014/04/11 职场文书
十佳青年事迹材料
2014/08/21 职场文书
国庆节促销广告语2014
2014/09/19 职场文书
市级三好学生评语
2014/12/29 职场文书
怎样写辞职信
2015/02/27 职场文书
2016三严三实专题教育活动心得体会
2016/01/06 职场文书
2016年社区植树节活动总结
2016/03/16 职场文书
2016简单的租房合同范本
2016/03/18 职场文书
2016医师资格考试考生诚信考试承诺书
2016/03/25 职场文书
Mysql 数据库中的 redo log 和 binlog 写入策略
2022/04/26 MySQL