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的setuptools框架下生成egg的教程
Apr 13 Python
python数据结构链表之单向链表(实例讲解)
Jul 25 Python
Python编程求解二叉树中和为某一值的路径代码示例
Jan 04 Python
详解python使用递归、尾递归、循环三种方式实现斐波那契数列
Jan 16 Python
python 动态生成变量名以及动态获取变量的变量名方法
Jan 20 Python
Django+Xadmin构建项目的方法步骤
Mar 06 Python
如何利用python给图片添加半透明水印
Sep 06 Python
python判断变量是否为int、字符串、列表、元组、字典的方法详解
Feb 13 Python
tensorflow之读取jpg图像长和宽实例
Jun 18 Python
Sublime Text3最新激活注册码分享适用2020最新版 亲测可用
Nov 12 Python
Pycharm如何自动生成头文件注释
Nov 14 Python
python 用opencv实现图像修复和图像金字塔
Nov 27 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.MVC的模板标签系统(三)
2006/09/05 PHP
zend api扩展的php对象的autoload工具
2011/04/18 PHP
异步加载技术实现当滚动条到最底部的瀑布流效果
2014/09/16 PHP
PHP实现的增强性mhash函数
2015/05/27 PHP
标准版Eclipse搭建PHP环境的详细步骤
2015/11/18 PHP
比较详细的javascript对象的property和prototype是什么一种关系
2007/08/06 Javascript
jQuery实现的类flash菜单效果代码
2010/05/17 Javascript
20款效果非常棒的 jQuery 插件小结分享
2011/11/18 Javascript
jquery实现省市select下拉框的替换(示例代码)
2014/02/22 Javascript
jQuery中:visible选择器用法实例
2014/12/30 Javascript
在JavaScript中使用NaN值的方法
2015/06/05 Javascript
JS实现星星评分功能实例代码(两种方法)
2016/06/09 Javascript
JS对象的深度克隆方法示例
2017/03/16 Javascript
Angular2平滑升级到Angular4的步骤详解
2017/03/29 Javascript
vue2.0 实现导航守卫的具体用法(路由守卫)
2018/05/17 Javascript
浅谈super-vuex使用体验
2018/06/25 Javascript
JS实现导航栏楼层特效
2020/01/01 Javascript
ES6学习笔记之let与const用法实例分析
2020/01/22 Javascript
Layui弹框中数据表格中可双击选择一条数据的实现
2020/05/06 Javascript
详细分析JavaScript中的深浅拷贝
2020/09/17 Javascript
深入浅析Python中join 和 split详解(推荐)
2016/06/30 Python
python模块简介之有序字典(OrderedDict)
2016/12/01 Python
Python中的上下文管理器相关知识详解
2019/09/19 Python
Python爬虫JSON及JSONPath运行原理详解
2020/06/04 Python
Python实现查找数据库最接近的数据
2020/06/08 Python
详解CSS3 用border写 空心三角箭头 (两种写法)
2017/09/29 HTML / CSS
Zadig&Voltaire官网:法国时装品牌
2018/01/05 全球购物
美国滑板店:Tactics
2020/11/08 全球购物
影视动画专业个人的自我评价
2013/12/31 职场文书
综合实践教学反思
2014/01/31 职场文书
《放飞蜻蜓》教学反思
2014/04/27 职场文书
初一新生军训方案
2014/05/22 职场文书
CAD实训总结范文
2015/08/03 职场文书
员工担保书范本
2015/09/22 职场文书
mybatis源码解读之executor包语句处理功能
2022/02/15 Java/Android
电脑开机弹出documents文件夹怎么回事?弹出documents文件夹解决方法
2022/04/08 数码科技