我正在使用wunderground的json api来查询我网站上的天气状况。 api给了我一个很好的json对象以及所有必要的数据,但我每天只能进行一些调用。存储此数据的首选方法是什么?
我正在考虑将json转储到一个文件中,并检查它的时间戳:如果它超过60分钟,则获取新的并覆盖,如果不是,则从磁盘读取该文件。我不会创建一个数据库表来存储我基本上不需要的天气数据。是否有一些聪明的Django缓存这个过程的方法,还是我应该手动完成?
答案 0 :(得分:5)
是的,Django有一个内置的缓存机制。如果您不想安装缓存服务器,可以使用文件系统缓存,这与您正在谈论的内容几乎相同,但您不必自己滚动它。
你可以在settings.py
中添加这样的内容CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
'LOCATION': '/var/tmp/django_cache',
}
}
在您的应用程序代码中,您可以使用一些逻辑来检查缓存,如果找不到,则从服务器加载并缓存它。
from django.core.cache import cache
weather_json_data = cache.get('weather_90210'):
if not weather_json_data:
weather_json_data = get_data_from_api(zip)
cache.set('weather_{0}'.format(zip), weather_json_data, 60)
#return the weather_json_data through HttpResponse here