Django ORM框架的定時(shí)任務(wù)如何使用詳解
前言
大家在Django項(xiàng)目開發(fā)過(guò)程中,是不是也經(jīng)常遇到這樣的場(chǎng)景:需要實(shí)現(xiàn)一個(gè)定時(shí)任務(wù),但又不想脫離Django環(huán)境獨(dú)立運(yùn)行,如:還需要使用Django的ORM框架操作Models類、日志框架、復(fù)用已有配置/方法等等。
大部分同學(xué),初次接觸時(shí)首先想到的就是使用第三方插件,如:django-celery,django-crontab等等,我也不例外,但實(shí)際使用過(guò)程,總有諸多不爽,要么感覺(jué)大材小用,要么功能支持不完整,要么使用很繁瑣。。。
多次嘗試摸索后,發(fā)現(xiàn)Django已經(jīng)幫我們實(shí)現(xiàn)了該功能,使用起來(lái)也是非常的方便易用。那就是利用django-admin自定義命令,使用它,就可以使用ORM框架對(duì)model進(jìn)行操作,如:定時(shí)更新數(shù)據(jù)庫(kù),檢測(cè)數(shù)據(jù)庫(kù)狀態(tài)….. 然后將自定義命令加入到crontab任務(wù)列表中即可。
使用方法:
Django為項(xiàng)目中每一個(gè)應(yīng)用下的management/commands目錄中名字沒(méi)有以下劃線開始的Python模塊都注冊(cè)了一個(gè)manage.py命令,例如:

_private.py將不可以作為一個(gè)管理命令使用。
closepoll.py模塊只有一個(gè)要求 – 它必須定義一個(gè)Command類并擴(kuò)展自Basecommand或其子類

新的自定義命令可以使用python manage.py closepoll 調(diào)用。
這樣,就可以將新的自定義命令加入到Linux crontab任務(wù)列表里實(shí)現(xiàn)定時(shí)任務(wù)的目的了。
總結(jié):
用自定義新命令來(lái)實(shí)現(xiàn)定時(shí)任務(wù),實(shí)際開發(fā)過(guò)程非常簡(jiǎn)單,但這個(gè)思路確實(shí)有讓我眼前一亮,豁然開朗。到達(dá)成功的方法多種多樣,只有想不到,沒(méi)有做不到。能找到最方便,最易用,最能提高效率的方法才是提升開發(fā)效率的根本。
好了,以上就是這篇文章的全部?jī)?nèi)容了,本文還有許多不足,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
- django框架使用orm實(shí)現(xiàn)批量更新數(shù)據(jù)的方法
- Django使用詳解:ORM 的反向查找(related_name)
- Django ORM 查詢表中某列字段值的方法
- Django基于ORM操作數(shù)據(jù)庫(kù)的方法詳解
- Django ORM 聚合查詢和分組查詢實(shí)現(xiàn)詳解
- Django中ORM表的創(chuàng)建和增刪改查方法示例
- django的ORM模型的實(shí)現(xiàn)原理
- 基于Django ORM、一對(duì)一、一對(duì)多、多對(duì)多的全面講解
- django 常用orm操作詳解
- 淺談django orm 優(yōu)化
- Django中ORM的基本使用教程
相關(guān)文章
python實(shí)現(xiàn)兩個(gè)文件夾的同步
這篇文章主要為大家詳細(xì)介紹了利用python實(shí)現(xiàn)兩個(gè)文件夾的同步,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-08
Selenium環(huán)境變量配置(火狐瀏覽器)及驗(yàn)證實(shí)現(xiàn)
這篇文章主要介紹了Selenium環(huán)境變量配置(火狐瀏覽器)及驗(yàn)證實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
探索Python函數(shù)調(diào)用為何加速代碼執(zhí)行原理
Python 作為一種解釋型語(yǔ)言,其執(zhí)行速度相對(duì)于編譯型語(yǔ)言可能會(huì)較慢,然而,在Python中,通常觀察到代碼在函數(shù)中運(yùn)行得更快的現(xiàn)象,這個(gè)現(xiàn)象主要是由于函數(shù)調(diào)用的內(nèi)部?jī)?yōu)化和解釋器的工作方式導(dǎo)致的,本文將深入探討這個(gè)現(xiàn)象,并通過(guò)詳細(xì)的示例代碼進(jìn)行解釋2024-01-01

