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 socket.error: [Errno 98] Address already in use的原因和解决方法
Aug 25 Python
Python制作Windows系统服务
Mar 25 Python
Python正则表达式常用函数总结
Jun 24 Python
python+selenium开发环境搭建图文教程
Aug 11 Python
Python数据拟合与广义线性回归算法学习
Dec 22 Python
selenium+python实现自动化登录的方法
Sep 04 Python
详解PANDAS 数据合并与重塑(join/merge篇)
Jul 09 Python
python_mask_array的用法
Feb 18 Python
Python开发之pip安装及使用方法详解
Feb 21 Python
Python API 操作Hadoop hdfs详解
Jun 06 Python
selenium切换标签页解决get超时问题的完整代码
Aug 30 Python
ASP.NET Core中的配置详解
Feb 05 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 一个页面执行时间类代码
2010/03/05 PHP
php模拟socket一次连接,多次发送数据的实现代码
2011/07/26 PHP
深入PHP nl2br()格式化输出的详解
2013/06/05 PHP
Drupal7中常用的数据库操作实例
2014/03/02 PHP
设置php页面编码的两种方法示例介绍
2014/03/03 PHP
Json2Template.js 基于jquery的插件 绑定JavaScript对象到Html模板中
2011/10/29 Javascript
jquery实现导航固定顶部的效果仿蘑菇街
2014/10/22 Javascript
浅谈JavaScript中的作用域和闭包问题
2015/07/07 Javascript
jQuery插件jquery-barcode实现条码打印的方法
2015/11/25 Javascript
JS判断当前页面是否在微信浏览器打开的方法
2015/12/08 Javascript
详解JavaScript时间格式化
2015/12/23 Javascript
js 基础篇必看(点击事件轮播图的简单实现)
2016/08/20 Javascript
学好js,这些js函数概念一定要知道【推荐】
2017/01/19 Javascript
Angularjs中使用指令绑定点击事件的方法
2017/03/30 Javascript
javascript+html5+css3自定义提示窗口
2017/06/21 Javascript
详解基于node的前端项目编译时内存溢出问题
2017/08/01 Javascript
vue 里面使用axios 和封装的示例代码
2017/09/01 Javascript
详解nuxt sass全局变量(公共scss解决方案)
2018/06/27 Javascript
简单了解three.js 着色器材质
2020/08/03 Javascript
使用python生成杨辉三角形的示例代码
2018/08/29 Python
python django中8000端口被占用的解决
2019/12/17 Python
pytorch常见的Tensor类型详解
2020/01/15 Python
pycharm 中mark directory as exclude的用法详解
2020/02/14 Python
Booking.com英国官网:全球酒店在线预订网站
2018/04/21 全球购物
德国传统玻璃制造商:Cristalica
2018/04/23 全球购物
意大利单身交友网站:Meetic
2020/07/12 全球购物
美德少年事迹材料
2014/01/23 职场文书
小学国庆节活动方案
2014/02/11 职场文书
建设办主任四风问题整改思路和措施
2014/09/20 职场文书
法定代表人授权委托书范文
2014/09/22 职场文书
新员工试用期工作总结2015
2015/05/28 职场文书
门球健将观后感
2015/06/16 职场文书
优秀学生干部主要事迹材料
2015/11/04 职场文书
解决goland 导入项目后import里的包报红问题
2021/05/06 Golang
SpringMVC 整合SSM框架详解
2021/08/30 Java/Android
mysql分表之后如何平滑上线详解
2021/11/01 MySQL