【问题标题】:Execute Django shell command as cron作为 cron 执行 Django shell 命令
【发布时间】:2015-05-18 01:30:10
【问题描述】:

我正在尝试以cron 的身份执行 Django shell 命令, 我有一些查询和对象任务要使用我的 django 应用程序的模型和查询进行搜索和读写。

我怎样才能每天执行 1 或 2 次?

例如,如何定期运行这些查询:

from django.contrib.auth.models import User
from perfil.models import *

for user in usuarios:
        profiles = Perfil.objects.filter(user=user)
        create_task = Task.objects.create(user=user)

【问题讨论】:

    标签: python django cron scheduled-tasks django-shell


    【解决方案1】:

    看看Custom management commands for django

    作为一个基本示例:

    from django.core.management.base import BaseCommand, CommandError
    from django.contrib.auth.models import User
    from perfil.models import *
    
    class Command(BaseCommand):
    
        help = 'What does this do? '
    
        def handle(self, *args, **options):
            for user in usuarios:
                profiles = Perfil.objects.filter(user=user)
                create_task = Task.objects.create(user=user)
    

    附带说明,您应该更明确地说明您的导入,而不是使用from perfil.models import *

    从此,您可以根据保存的文件执行命令。如果您将文件保存在yourapp/management/commands/dofunstuff.py,则可以通过python manage.py dofunstuff执行。

    【讨论】:

    • 我在 Perfil 模型上使用此导入
    最近更新 更多