如何在django

时间:2017-12-08 15:52:28

标签: python django

我有一个Django网站正在运行,我正在寻找一种方法来运行一个脚本,不断从Internet获取一些数据并将它们插入我的Django应用程序数据库。

只要服务器启动,我怎么能保持脚本运行? (无需手动启动 - 并且根本不想停止它!)  我猜芹菜不是我想要的!?!

,如何在此脚本中使用Django ORM将数据插入数据库? 我试过线程,但认为它应该通过调用脚本或..

来启动

1 个答案:

答案 0 :(得分:2)

您确实可以使用芹菜来完成这项工作,您可以充分利用ORM,而无需手动查询数据库。创建一个将从Internet获取项目并更新数据库的任务。定义一个芹菜任务,它会做你想要的(取出+保存)

 @app.task
 def fetching_script():
     response = requests.get(url)
     for item in response.content:
         instance = ModelInstance(**item)
         instance.full_clean()
         instance.save()

然后在你的芹菜配置

  app.conf.update(
      CELERYBEAT_SCHEDULE={
          'fetch_and_save': {
             'task': 'path.to.your.fetching_script',
             'schedule': crontab(minute='*/15'),
          }
      }
  )

这将每15分钟执行一次任务,例如,您需要根据您的需要或脚本运行的时间来调整时间。实现此目的的另一种方法是创建一个独立的脚本来完成这项工作(例如使用DB包装器)并将脚本放入crontab中,假设您在服务器端运行Linux发行版