如何使用 Django 不断更新数据

How to constantly update data with Django

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

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

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

交互

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

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'])

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

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

  • 使用celery to configure a periodic task。当然,这会花费您更多时间,因为您必须学习如何使用一种新的(非常有用的)工具。

如果您认为其他任何东西都不需要芹菜,我会推荐第一个。如果你喜欢学习新的东西,第二个因为任务会和Django结合得更好