在Django中为用户安排电子邮件报告的最佳方式

时间:2017-08-01 16:41:21

标签: django email html-email reporting

所以这个问题更多地集中在Django的最佳实践和建议上。

基本上,我想安排在两个事件上触发关于Django的电子邮件报告:

  • 每周报告电子邮件,其中包含一些统计信息,新闻等
  • 系统中事件触发的报告(即模型上的保存)

这应该通过计划任务直接在Django中完成吗?或者还有其他可以使用的工具吗?

1 个答案:

答案 0 :(得分:1)

关于每周计划任务,最直接的方法可能是创建新的自定义管理命令,并使用cron或Windows任务计划程序调用该命令。这实际上已经有了答案,还有其他可能的选项供你考虑:

Django - Set Up A Scheduled Job?

注意:如果您使用的是virtualenv,请确保让cron通过virtualenv中的python二进制文件调用管理命令,而不是系统路径中的二进制文件。

对于基于应用程序事件或条件的触发操作,有两点想法:

  • 您可以为模型上的post-save signal设置监听器。收到信号后,可以通过接收方发送电子邮件。您可以阅读信号here
  • Django的send_mail电子邮件包装器非常简单,您也可以直接在视图中使用它。