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爬虫入门教程之点点美女图片爬虫代码分享
Sep 02 Python
python之wxPython应用实例
Sep 28 Python
bpython 功能强大的Python shell
Feb 16 Python
python简单图片操作:打开\显示\保存图像方法介绍
Nov 23 Python
浅析Git版本控制器使用
Dec 10 Python
python3+selenium自动化测试框架详解
Mar 17 Python
python 并发编程 多路复用IO模型详解
Aug 20 Python
python GUI库图形界面开发之PyQt5多线程中信号与槽的详细使用方法与实例
Mar 08 Python
keras 回调函数Callbacks 断点ModelCheckpoint教程
Jun 18 Python
基于PyTorch实现一个简单的CNN图像分类器
May 29 Python
Python办公自动化之教你用Python批量识别发票并录入到Excel表格中
Jun 26 Python
python实现商品进销存管理系统
May 30 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中Object对象的笔记分享
2011/06/28 PHP
提示Trying to clone an uncloneable object of class Imagic的解决
2011/10/27 PHP
浅析php fwrite写入txt文件的时候用 \r\n不能换行的问题
2013/08/06 PHP
php中把美国时间转为北京时间的自定义函数分享
2014/07/28 PHP
PHP中filter函数校验数据的方法详解
2015/07/31 PHP
基于jquery的一个图片hover的插件
2010/04/24 Javascript
Javascript创建自定义对象 创建Object实例添加属性和方法
2012/06/04 Javascript
php对mongodb的扩展(初识如故)
2012/11/11 Javascript
Javascript 垃圾收集机制介绍理解
2013/05/14 Javascript
火狐下table中创建form导致两个table之间出现空白
2013/09/02 Javascript
jquery判断浏览器后退时候弹出消息的方法
2014/08/11 Javascript
AngularJS使用ngMessages进行表单验证
2015/12/27 Javascript
理解js回收机制通俗易懂版
2016/02/29 Javascript
Angularjs中controller的三种写法分享
2016/09/21 Javascript
JavaScript仿微博输入框效果(案例分析)
2016/12/06 Javascript
Vue如何引入远程JS文件
2017/04/20 Javascript
angularjs中ng-bind-html的用法总结
2017/05/23 Javascript
JavaScript自执行函数和jQuery扩展方法详解
2017/10/27 jQuery
微信小程序使用video组件播放视频功能示例【附源码下载】
2017/12/08 Javascript
VUEJS 2.0 子组件访问/调用父组件的实例
2018/02/10 Javascript
JavaScript引用类型Object常见用法实例分析
2018/08/08 Javascript
VUE-Table上绑定Input通过render实现双向绑定数据的示例
2018/08/27 Javascript
vue项目首屏打开速度慢的解决方法
2019/03/31 Javascript
layui实现给某一列加点击事件
2019/10/26 Javascript
JavaScript实现轮播图片完整代码
2020/03/07 Javascript
微信小程序scroll-view实现滚动到锚点左侧导航栏点餐功能(点击种类,滚动到锚点)
2020/06/11 Javascript
wxpython学习笔记(推荐查看)
2014/06/09 Python
Python实现输入二叉树的先序和中序遍历,再输出后序遍历操作示例
2018/07/27 Python
使用pyshp包进行shapefile文件修改的例子
2019/12/06 Python
git查看、创建、删除、本地、远程分支方法详解
2020/02/18 Python
android面试问题与答案
2016/12/27 面试题
护理专业推荐信
2013/11/07 职场文书
积极分子思想汇报
2014/01/04 职场文书
2014年财务经理工作总结
2014/12/08 职场文书
民事起诉状范文
2015/05/19 职场文书
2019交通安全宣传标语集锦!
2019/06/28 职场文书