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爬取读者并制作成PDF
Mar 10 Python
Python中用memcached来减少数据库查询次数的教程
Apr 07 Python
Python多线程、异步+多进程爬虫实现代码
Feb 17 Python
Python实现Windows和Linux之间互相传输文件(文件夹)的方法
May 08 Python
Python实现的堆排序算法原理与用法实例分析
Nov 22 Python
Pipenv一键搭建python虚拟环境的方法
May 22 Python
python pandas读取csv后,获取列标签的方法
Nov 12 Python
利用Python实现kNN算法的代码
Aug 16 Python
使用Python生成200个激活码的实现方法
Nov 22 Python
Python注释、分支结构、循环结构、伪“选择结构”用法实例分析
Jan 09 Python
Python3自定义json逐层解析器代码
May 11 Python
python怎么提高计算速度
Jun 11 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求正负数数组中连续元素最大值示例
2014/04/11 PHP
简单谈谈favicon
2015/06/10 PHP
javascript String 对象
2008/04/25 Javascript
javascript 避免闭包引发的问题
2009/03/17 Javascript
jQuery源码分析-04 选择器-Sizzle-工作原理分析
2011/11/14 Javascript
JavaScript导出Excel实例详解
2014/11/25 Javascript
JS实现滑动菜单效果代码(包括Tab,选项卡,横向等效果)
2015/09/24 Javascript
jQuery模仿单选按钮选中效果
2016/06/24 Javascript
Vue.js每天必学之计算属性computed与$watch
2016/09/05 Javascript
vue.js通过自定义指令实现数据拉取更新的实现方法
2016/10/18 Javascript
jQuery事件_动力节点Java学院整理
2017/07/05 jQuery
jQuery 开发之EasyUI 添加数据的实例
2017/09/26 jQuery
详解基于React.js和Node.js的SSR实现方案
2019/03/21 Javascript
浅谈JS的原型和继承
2019/05/08 Javascript
react koa rematch 如何打造一套服务端渲染架子
2019/06/26 Javascript
[04:09]2018年度DOTA2社区贡献奖-完美盛典
2018/12/16 DOTA
[49:43]VG vs FNATIC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Python编写电话薄实现增删改查功能
2016/05/07 Python
Python中datetime模块参考手册
2017/01/13 Python
python数据结构之链表详解
2017/09/12 Python
在Python中构建增广矩阵的实现方法
2019/07/01 Python
python使用PIL剪切和拼接图片
2020/03/23 Python
python如何求圆的面积
2020/07/01 Python
python定时截屏实现
2020/11/02 Python
用Python 执行cmd命令
2020/12/18 Python
10分钟入门CSS3 Animation
2018/12/25 HTML / CSS
可打印的优惠券、杂货和优惠券代码:Coupons.com
2018/06/12 全球购物
亚马逊墨西哥站:Amazon.com.mx
2018/08/26 全球购物
日本热销NO.1胶原蛋白冻:Aishitoto爱希特多
2019/06/20 全球购物
PHP引擎php.ini参数优化深入讲解
2021/03/24 PHP
创业计划书——互联网商机
2014/01/12 职场文书
学生逃课检讨书1000字
2014/10/20 职场文书
精神文明建设先进个人事迹材料
2014/12/24 职场文书
本科毕业论文答辩稿
2015/06/23 职场文书
Python echarts实现数据可视化实例详解
2022/03/03 Python
Java+swing实现抖音上的表白程序详解
2022/06/25 Java/Android