2017-08-22 45 views
0

我已經將json從api導入到了我的視圖中。它現在工作得很好,但不知何故,如果我進入網站,django會緩存api給出的值,因此不會顯示最近的值。我試圖使用「never_cache」和「緩存控制」,但它沒有奏效。有沒有我能用django或Apache做的解決方案?使用導入的json api禁用django-views中的緩存

我的觀點

from __future__ import unicode_literals 
from django.shortcuts import render 
from urllib import urlopen 
import json 
from django.views.decorators.cache import never_cache, cache_control 

response = json.loads(urlopen('http://api.fixer.io/latest').read()) 
usdollar = response['rates']['USD'] 

#@never_cache 
@cache_control(max_age=0, no_cache=True, no_store=True, must_revalidate=True) 
def home(request): 
    return render(request, "index.html", {"usdollar":usdollar}) 

回答

0

此刻,你是在模塊級使你的API調用。這意味着它只會在模塊加載時運行一次。您應該將代碼移到您的視圖中:

#@never_cache 
@cache_control(max_age=0, no_cache=True, no_store=True, must_revalidate=True) 
def home(request): 
    response = json.loads(urlopen('http://api.fixer.io/latest').read()) 
    usdollar = response['rates']['USD'] 
    return render(request, "index.html", {"usdollar":usdollar}) 
+0

謝謝,現在完美的作品 – tbenji84