【发布时间】:2019-04-17 00:30:59
【问题描述】:
我通过请求一个 api 源来获取我的数据,然后我把它放在我的 django 模型中。但是,数据每天都会更新.. 那么如何在不每次都渲染的情况下更新这些数据呢?
def index (request):
session = requests.Session()
df = session.get('https://api.coincap.io/v2/assets')
response= df.json()
coin = response['data']
final_result = coin.to_dict('records')
for coin in final_result:
obj, created = Coincap.objects.update_or_create(
symbol = coin['symbol'],
name = coin['name'],
defaults = {
'price': coin['priceUsd']
})
return render(request, '/home.html/')
现在,如果我想更新我的数据,我必须去/home.html。但是,我的目标是稍后将其序列化并使其成为 REST api 数据,因此我不再接触 django 模板。无论如何,它在我做@987654325@ 之后每天内部更新一次?
【问题讨论】:
-
似乎应该是一个周期性的任务。您可以使用 cronjob 或 celery 进行更新。
-
您可以使用 crontab 来实现此目的,对于 Django,您可以使用 django-crontab 来定期调用您的视图。
标签: django python-3.x django-rest-framework