如何在django中运行后端,在页面运行时保存数据库中的对象?
示例刮刀在后面无限期地运行,并使用文章更新模型(标题,摘要,网址) 该页面显示了已经存在于数据库中的页面,并且可能同时抓取了许多页面(例如在Twitter上),您可以加载它们。
一种方法是在python-mysql脚本中编写它直接更新表。但有没有办法访问django-models界面?换句话说,django的做法是什么?
答案 0 :(得分:1)
直截了当的答案是,你无法真正使用django as-it-is,来自http请求,因为它不支持后台执行,也不支持开箱即用的websockets。
你实际上可以在stackoverflow上找到相当多的相关答案,太多了不能提及它们,但很少有人真的把答案放在一起。基本上你应该能够实现你想要的东西:
一个更通用的答案,包括几个替代方案可能超出SO的范围,但如果您开始并有一些更精确的问题,请告诉我们。
编辑:当然,完全管理的芹菜系统的替代品是好的旧cron(正如你的建议)+一个custom ./manage.py
command允许你使用django模型,正如@DTing建议的那样!
答案 1 :(得分:1)
您可以编写自定义管理命令docs
并设置一个cron作业,以便按照所需的时间间隔执行它。
ajax可用于将数据加载到已打开的页面,新请求应正确从数据库中提取更新的数据。
答案 2 :(得分:1)
另外,如果你想要一些比Celery + Rabbit MQ更简单的东西,并且不想在cron中捣乱太多,那么django-extensions应用程序有一个非常漂亮的Jobs功能(http://packages.python .ORG / Django的扩展/ jobs_scheduling.html)。它只执行每日/每小时/每周/每月作业,但您只需编辑一次crontab。