2015-08-27 38 views
1
# In views.py 
num = 1 

def home(request): 
    global num 
    context = { 
     'num1': num 
    } 
    return render(request, "home.html", context) 

# In home.html 
<h1>{{ num1 }}</h1> 

我有我的程序設置,使變量num更改爲(我還沒有顯示出這裏的簡單代碼)0和9每5秒之間的隨機整數,我知道它是有效的,因爲我也每5秒打印一次num的值,它正在改變。但是,在home.html中,我只看到「1」,所以num1不會改變。我如何將num1更改爲num的新值?如何改變Django的意見字典

回答

0

youd必須將更新的num傳遞給視圖,以便它可以「重新呈現」更新後的模板變量。它只渲染初始值,因爲這是當你使用渲染來渲染模板時所傳遞的內容(...)

對於這個imo,javascript可能會更好。

+0

我將如何使用JavaScript,可以請你告訴我一個例子? – PiccolMan

0

發生這種情況的原因是每次都使用num1呈現模板。稍後您可能會更改num的值,但一旦模板已被渲染,它將不會自動在您的模板中更改num的值。你必須明確地做。

您可以使用javascript作爲@Slayer也提到了更新您的模板中的值num每5秒。

0

視圖只處理一次。一旦模板被渲染,視圖將不會再被執行。如果您希望每5秒在前端生成一個隨機數,請在前端自行執行。你不必一次又一次地打到後端。它只會使請求超載你的服務器。

這裏是一個隨機數生成器的JavaScript代碼:

<script> 
function myFunction() { 
    var x = Math.floor((Math.random() * 10) + 1); 
    document.getElementById("demo").innerHTML = x; 
} 
</script>