定期更新SQLite值

时间:2018-03-15 18:08:57

标签: python sql django python-3.x sqlite

假设我有以下四条记录(假设还有更多):

        record 1      record 2      record 3         record 4

area    California    Texas         California       California

food    Lobster       Lamb          Rabbit           Bagels

popular Bagels        Elk           Rabbit           Rabbit

现在我通过手动选择areafood将新记录添加到数据库中。然后,通过在输入时查找特定popular的最常见food,自动填充area字段。

例如,如果上述四条记录是整个数据库中的唯一记录,那么如果我要添加另一条记录area: Californiafood: Bagels,那么popular(记录我刚刚添加了)会自动分配值Bagels,因为Bagels字段中有两个food,区域为California

以上内容已经有效,我通过以下代码实现了上述目标:

popular = list(ModelData.objects.filter(area=area).values_list('food', flat=True))
Counter(popular).most_common()

问题是,上面仍然在数据库中留下了不正确的popular值的现有记录;因为popular仅在输入时计算,并且在添加更多条目时从不“重新计算”。

使用上面的示例(使用area: Californiafood: Bagels添加新记录),仍会有两个California条记录record 3record 4)如果popular成为Bagels最受欢迎的新食物,那么Bagels值应该更新为California

每当popular更新(或定期,即每小时/每天)时,如何更新area每个food值,成为新的,最受欢迎的Bad Request:400

我尝试在线搜索,毫不奇怪,没有任何运气,因为我意识到这是一个令人困惑的问题。

2 个答案:

答案 0 :(得分:0)

  • 添加一个能够完成所需内务管理的URL处理程序。
  • 使该URL仅在内部可用(例如,需要令牌或检查请求者的IP)。
  • 定期添加cron job(如man 5 crontab中所述curl https://your-server/internal/run-houskeeping

答案 1 :(得分:0)

我会使用芹菜,这将帮助您安排更新并与Django配合使用,或者您也可以添加脚本到您的crontab。