fre*_*row 2 django json caching
我正在使用wunderground的json api来查询我的网站上的天气状况.api给了我一个很好的json对象以及所有必要的数据,但我每天只能进行一些调用.存储此数据的首选方法是什么?
我正在考虑将json转储到一个文件中,并检查它的时间戳:如果它超过60分钟,则获取新的并覆盖,如果不是,则从磁盘读取文件.我不会创建一个数据库表来存储我基本上不需要的天气数据.是否有一些聪明的Django缓存此过程的方法或我应该手动执行?
是的,Django有一个内置的缓存机制.如果您不想安装缓存服务器,可以使用文件系统缓存,这与您正在谈论的内容几乎相同,但您不必自己滚动它.
你可以在settings.py中输入这样的东西
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
'LOCATION': '/var/tmp/django_cache',
}
}
Run Code Online (Sandbox Code Playgroud)
在您的应用程序代码中,您可以使用一些逻辑来检查缓存,如果找不到,则从服务器加载并缓存它.
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1688 次 |
| 最近记录: |