我想知道如何准确地安排生成报告并在每天的特定时间以访客详细信息日志表的电子邮件形式发送出去。访客详细信息(如姓名、进出时间、访问目的)需要通过电子邮件发送。我在 Linux 上使用 Django 1.6.5。
我知道 cron 设置计划作业? https://docs.djangoproject.com/en/dev/howto/custom-management-commands/但似乎没有把事情放在一起。
我可以使用所有模型管理选项在 Django 管理 GUI 中创建模板和视图。我还可以使用管理面板中的操作生成 CSV。但是,我希望每天自动生成报告并以电子邮件形式发送出去,而无需登录 Django。我需要一个完整的代码解决方案,因为我不清楚如何做到这一点。
首先创建自定义管理命令,例如:
class Command(BaseCommand):
commands = ['sendreport',]
args = '[command]'
help = 'Send report'
def handle(self, *args, **options):
'''
Get completed sessions, send invite to vote
'''
reports = Log.objects.filter(date__gt=datetime.today(),date__lt=(datetime.today()+timedelta(days=2)))
for report in reports:
send_notification(_("Report"), _("log:%s")%report.text, '[email protected]' )
创建电子邮件文本并发送
然后你可以添加 cronjob,类似
0 0 * * * /pathtovirtualenv/python manage.py sendreport
每天晚上运行此命令
了解 cronjob 每天发送报告