愚公系列2022年02月 Python教學課程 59-Django框架之定時任務和自定義命令

      網友投稿 792 2022-05-30

      一、Django自定義命令

      Django自定義命令文檔:https://docs.djangoproject.com/zh-hans/2.2/howto/custom-management-commands/

      利用django-admin自定義命令我們可以ORM框架對model進行操作,如:定時更新數據庫,檢測數據庫狀態等等。

      Django為項目中每一個應用下的management/commands目錄中名字沒有以下劃線開始的Python模塊都注冊了一個manage.py命令,例如:

      polls/ __init__.py models.py management/ __init__.py commands/ __init__.py _private.py closepoll.py tests.py views.py

      closepoll.py模塊只有一個要求 ,它必須定義一個Command類并擴展自Basecommand或其子類

      from django.core.management.base import BaseCommand, CommandError from polls.models import Question as Poll class Command(BaseCommand): help = 'Closes the specified poll for voting' def add_arguments(self, parser): parser.add_argument('poll_ids', nargs='+', type=int) def handle(self, *args, **options): for poll_id in options['poll_ids']: try: poll = Poll.objects.get(pk=poll_id) except Poll.DoesNotExist: raise CommandError('Poll "%s" does not exist' % poll_id) poll.opened = False poll.save() self.stdout.write(self.style.SUCCESS('Successfully closed poll "%s"' % poll_id))

      新的自定義命令可以使用python manage.py closepoll 調用。

      二、 Django定時任務

      下載github地址:https://github.com/kraiz/django-crontab

      django-crontab安裝:

      pip install django-crontab

      只需要將django-crontab加入到settings.py的INSTALLED_APPS即可。如下代碼:

      INSTALLED_APPS = ( 'django_crontab', ... )

      settings.py中加入django-crontab的命令即可:

      CRONJOBS = [ ('47 11 * * *', 'django.core.management.call_command', ['closepoll'],{},'>> /var/run.log'), ]

      參數格式:

      參數1:定時 例如47 11 * * * 表示每天的11時47分執行

      參數2:方法的python模塊路徑,如果執行django-admin命令,則寫django.core.management.call_command

      參數3:方法的位置參數列表(默認值:[]),如果執行django-admin命令,則填寫所需執行的命令,例如我們在polls中已經定義過的closepoll

      參數4:方法的關鍵字參數的dict(默認值:{})

      參數5:執行log存放位置(即重定向到文件,默認:’’)

      django-crontab任務加載:

      【愚公系列】2022年02月 Python教學課程 59-Django框架之定時任務和自定義命令

      django-crontab任務加載比較簡單,只需要運行 python manage.py crontab add 即可

      查看已經激活的任務使用 python manage.py crontab show

      刪除已經有的任務使用 python manage.py crontab remove

      如果修改了任務記得一定要使用 python manage.py crontab add 這個會更新定時任務

      5G教育 Django Python

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:Google Earth Engine(GEE)——圖表概述(準備數據)
      下一篇:發現一款香到可以替代Postman的API管理工具
      相關文章
      亚洲AV无码1区2区久久| 亚洲国产国产综合一区首页| 亚洲午夜久久久久久尤物| 中文字幕亚洲色图| 91亚洲va在线天线va天堂va国产 | 亚洲欧洲专线一区| 亚洲中文无码卡通动漫野外 | 综合久久久久久中文字幕亚洲国产国产综合一区首 | 亚洲国产精品精华液| 亚洲Av永久无码精品一区二区| 亚洲人成网站色7799| 亚洲av午夜国产精品无码中文字| 91在线亚洲综合在线| 亚洲欧美日韩综合久久久久| 亚洲精品无码久久久久YW| 蜜桃传媒一区二区亚洲AV | 亚洲高清视频在线| 亚洲色大成网站www| 亚洲av无码兔费综合| 伊在人亚洲香蕉精品区麻豆| 亚洲国产精品国产自在在线| 亚洲区小说区图片区| 亚洲日产无码中文字幕| 婷婷久久久亚洲欧洲日产国码AV| 亚洲国产一区二区三区青草影视| 911精品国产亚洲日本美国韩国| 亚洲国产韩国一区二区| 亚洲一区二区三区成人网站 | 亚洲狠狠婷婷综合久久久久| 亚洲成色在线综合网站| 亚洲人成电影亚洲人成9999网| 91天堂素人精品系列全集亚洲| 亚洲一本之道高清乱码| 亚洲精品无码高潮喷水A片软| 国产偷国产偷亚洲清高APP| 亚洲人成无码网站久久99热国产| 国外亚洲成AV人片在线观看| 久久亚洲一区二区| 亚洲国产成人久久综合一区| 亚洲熟妇无码av另类vr影视| 亚洲精品老司机在线观看|