如何使用Django不断更新数据

时间:2015-03-02 16:05:33

标签: python django twitter

我正在使用Django(1.7)建立一个网站,从twitter api中提取推文。我想要来自特定用户的最新10条推文。确保推文是最新的最佳方法是什么?

我的想法是擦除10条推文的数据库,每5分钟抓一条最新的10条?我该怎么做?它会在model.py文件中吗?这是最好的方法吗?

现在我在models.py文件的底部有以下代码。它完美地填充数据,但我将如何更新它?我使用twython与twitter api和python 3.4进行交互。

list_of_people是Twitter用户名我正在测试。 twython传回一个dicts列表,然后我从每条推文中抓取我想要的数据并将其放入数据库

twitter = twython.Twython(APP_KEY, APP_SECRET, OAUTH_TOKEN, OAUTH_TOKEN_SECRET)

list_of_people = ["billgates", "TheEllenShow"]

for person in list_of_people:
    user_timeline = twitter.get_user_timeline(screen_name=person)
    for x in range(10):
        Category.objects.create(username=person, realname=user_timeline[x]['user']['name'], 
        tweets=user_timeline[x]['text'],tweettime=user_timeline[x]['created_at'])

1 个答案:

答案 0 :(得分:2)

您可以通过两种不同的方式完成此操作:

  • 使用cron定期调用脚本。这是最直接,最简单的解决方案。除了cron行之外,无需配置任何额外的工具。

  • 使用celery配置periodic task。当然,这个会花费你更多的时间,因为你必须学习如何处理一个新的(非常有用的)工具。

如果你认为你不需要芹菜,我会推荐第一个。如果你想学习新东西,那么第二个因为任务将与Django更加集成。