【问题标题】:Best way to schedule email reports to users in Django在 Django 中为用户安排电子邮件报告的最佳方式
【发布时间】:2018-01-08 15:32:14
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: django email html-email reporting


    【解决方案1】:

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

    Django - Set Up A Scheduled Job?

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

    关于基于应用程序事件或条件的触发动作,有两种想法:

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

    【讨论】:

    • 感谢您的回答。我已经有许多不同节奏的计划任务,所以知道这种方法存在。但是,在更具体的问题之后,是否最好在 Django 中进行此类报告和/或如果不是,如何挂钩报告工具以触发和与 Django 交互。
    • 这可能在很大程度上取决于您要报告的具体内容。同样,我认为从操作系统或 3rd 方工具进入 Django 应用程序的最基本和最简单的“方式”是通过管理命令。您可以通过外部工具编写您想要报告到数据库的内容,然后使用 Django 格式化和交付报告。
    猜你喜欢
    • 2013-06-22
    • 2017-09-26
    • 2012-11-14
    • 2020-02-23
    • 1970-01-01
    • 1970-01-01
    • 2016-03-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多