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中的日志模块logging
Jun 19 Python
Python数据结构与算法之图的基本实现及迭代器实例详解
Dec 12 Python
Python用于学习重要算法的模块pygorithm实例浅析
Aug 16 Python
django进阶之cookie和session的使用示例
Aug 17 Python
Python 使用folium绘制leaflet地图的实现方法
Jul 05 Python
python批量修改ssh密码的实现
Aug 08 Python
Python列表的切片实例讲解
Aug 20 Python
Python3列表List入门知识附实例
Feb 09 Python
django-利用session机制实现唯一登录的例子
Mar 16 Python
Python如何通过百度翻译API实现翻译功能
Apr 02 Python
Python Selenium截图功能实现代码
Apr 26 Python
opencv实现图像平移效果
Mar 24 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中一个有意思的日期逻辑处理
2012/03/25 PHP
PHP实现今天是星期几的几种写法
2013/09/26 PHP
php画图实例
2014/11/05 PHP
php获取、检查类名、函数名、方法名的函数方法
2015/06/25 PHP
php遍历解析xml字符串的方法
2016/05/05 PHP
Alliance vs Liquid BO3 第三场2.13
2021/03/10 DOTA
javascript 操作select下拉列表框的一点小经验
2010/03/20 Javascript
IE的事件传递-event.cancelBubble示例介绍
2014/01/12 Javascript
JS版的date函数(和PHP的date函数一样)
2014/05/12 Javascript
AngularJS基础教程之简单介绍
2015/09/27 Javascript
AngularJS中实现显示或隐藏动画效果的方式总结
2015/12/31 Javascript
JQuery ztree带筛选、异步加载实例讲解
2016/02/25 Javascript
AngularJS教程 ng-style 指令简单示例
2016/08/03 Javascript
zTree实现节点修改的实时刷新功能
2017/03/20 Javascript
微信小程序访问node.js接口服务器搭建教程
2017/04/25 Javascript
微信小程序城市定位的实现实例(获取当前所在国家城市信息)
2017/05/17 Javascript
webpack进阶——缓存与独立打包的用法
2017/08/02 Javascript
如何在JavaScript中优雅的提取循环内数据详解
2019/03/04 Javascript
Vue2.x通用条件搜索组件的封装及应用详解
2019/05/28 Javascript
解决layer弹出层自适应页面大小的问题
2019/09/16 Javascript
Javascript Dom元素获取和添加详解
2019/09/24 Javascript
Python编程中的异常处理教程
2015/08/21 Python
python用列表生成式写嵌套循环的方法
2018/11/08 Python
详解Pandas之容易让人混淆的行选择和列选择
2019/07/10 Python
Python生成器实现简单"生产者消费者"模型代码实例
2020/03/27 Python
CSS3 实现图形下落动画效果
2020/11/13 HTML / CSS
详解HTML5通讯录获取指定多个人的信息
2016/12/20 HTML / CSS
Cinque网上商店:德国服装品牌
2019/03/17 全球购物
美国亚洲时尚和美容产品的一站式网上商店:Stylevana
2019/09/05 全球购物
爱尔兰橄榄球店:Irish Rugby Store
2019/12/05 全球购物
班组拓展活动方案
2014/08/14 职场文书
先进单位申报材料
2014/12/25 职场文书
房屋租赁意向书范本
2015/05/09 职场文书
信息技术教研组工作总结
2015/08/13 职场文书
2016猴年春节慰问信
2015/11/30 职场文书
Python序列化与反序列化相关知识总结
2021/06/08 Python