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实现的几个常用排序算法实例
Jun 16 Python
python计算牛顿迭代多项式实例分析
May 07 Python
Python lxml模块安装教程
Jun 02 Python
python列表的常用操作方法小结
May 21 Python
Python遍历文件夹和读写文件的实现代码
Aug 28 Python
uwsgi+nginx部署Django项目操作示例
Dec 04 Python
python实现一个简单的udp通信的示例代码
Feb 01 Python
python字符串下标与切片及使用方法
Feb 13 Python
python如何输出反斜杠
Jun 18 Python
pytorch VGG11识别cifar10数据集(训练+预测单张输入图片操作)
Jun 24 Python
如何基于Python实现word文档重新排版
Sep 29 Python
python 实现定时任务的四种方式
Apr 01 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
东芝TOSHIBA RP-F11电路分析
2021/03/02 无线电
zend framework多模块多布局配置
2011/02/26 PHP
php实现文件编码批量转换
2014/03/10 PHP
JS异常处理try..catch语句的作用和实例
2014/05/05 PHP
ThinkPHP跳转页success及error模板实例教程
2014/07/17 PHP
laravel如何开启跨域功能示例详解
2017/08/31 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
2017/11/10 PHP
php实现获取农历(阴历)、节日、节气的类与用法示例
2017/11/20 PHP
PHP如何获取Cookie并实现模拟登录
2020/07/16 PHP
javascript获取元素CSS样式代码示例
2013/11/28 Javascript
js检验密码强度(低中高)附图
2014/06/05 Javascript
node.js中的path.sep方法使用说明
2014/12/08 Javascript
innerHTML在IE中报错解决方案
2014/12/15 Javascript
node.js中的fs.rmdirSync方法使用说明
2014/12/16 Javascript
初识Node.js
2015/03/20 Javascript
js调用webservice构造SOAP进行身份验证
2016/04/27 Javascript
jQuery Ajax 实例代码 ($.ajax、$.post、$.get)
2016/04/29 Javascript
探究JavaScript中的五种事件处理程序方式
2016/12/07 Javascript
Electron-vue脚手架改造vue项目的方法
2018/10/22 Javascript
微信小程序实现简易table表格
2020/06/19 Javascript
个人小程序接入支付解决方案
2019/05/23 Javascript
Vue el-autocomplete远程搜索下拉框并实现自动填充功能(推荐)
2019/10/25 Javascript
Vue两个版本的区别和使用方法(更深层次了解)
2020/02/16 Javascript
Javascript实现秒表计时游戏
2020/05/27 Javascript
js实现html滑动图片拼图验证
2020/06/24 Javascript
Node.js文本文件BOM头的去除方法
2020/11/22 Javascript
使用Python的Scrapy框架十分钟爬取美女图
2016/12/26 Python
不要用强制方法杀掉python线程
2017/02/26 Python
对django中render()与render_to_response()的区别详解
2018/10/16 Python
Python数据库小程序源代码
2019/09/15 Python
python 多进程并行编程 ProcessPoolExecutor的实现
2019/10/11 Python
使用jquery实现HTML5响应式导航菜单教程
2014/04/02 HTML / CSS
简述Linux文件系统通过i节点把文件的逻辑结构和物理结构转换的工作过程
2016/01/06 面试题
请用Python写一个获取用户输入数字,并根据数字大小输出不同信息的脚本
2014/05/20 面试题
Python Parser的用法
2021/05/12 Python
python 经纬度求两点距离、三点面积操作
2021/06/03 Python