Django ORM框架的定時(shí)任務(wù)如何使用詳解
前言
大家在Django項(xiàng)目開(kāi)發(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)有以下劃線開(kā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í)際開(kāi)發(fā)過(guò)程非常簡(jiǎn)單,但這個(gè)思路確實(shí)有讓我眼前一亮,豁然開(kāi)朗。到達(dá)成功的方法多種多樣,只有想不到,沒(méi)有做不到。能找到最方便,最易用,最能提高效率的方法才是提升開(kā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爬取分析超級(jí)大樂(lè)透歷史開(kāi)獎(jiǎng)數(shù)據(jù)
這篇文章主要介紹了python爬取分析超級(jí)大樂(lè)透歷史開(kāi)獎(jiǎng)數(shù)據(jù),本次使用了requests和beautifulsoup庫(kù)進(jìn)行數(shù)據(jù)的爬取,通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02Python查找算法之分塊查找算法的實(shí)現(xiàn)
這篇文章主要介紹了Python查找算法之分塊查找算法的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04matplotlib階梯圖的實(shí)現(xiàn)(step())
這篇文章主要介紹了matplotlib階梯圖的實(shí)現(xiàn)(step()),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03django中F表達(dá)式和Q函數(shù)應(yīng)用與原理詳解
F對(duì)象查詢與Q對(duì)象查詢,剛看到大家一定會(huì)感到很陌生,其實(shí)它們也是 Django 提供的查詢方法,而且非常的簡(jiǎn)單的高效,下面這篇文章主要給大家介紹了關(guān)于django中F表達(dá)式和Q函數(shù)應(yīng)用與原理的相關(guān)資料,需要的朋友可以參考下2023-05-05Python通過(guò)90行代碼搭建一個(gè)音樂(lè)搜索工具
這篇文章主要介紹了Python通過(guò)90行代碼搭建一個(gè)音樂(lè)搜索工具,需要的朋友可以參考下2015-07-07