# 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
每5秒更改为0到9之间的随机整数(为了简单起见,我没有在这里显示代码),我知道它的工作原因是因为我也每5秒打印一次num
的值,它正在改变。但是,在home.html中我只看到“1”,所以num1没有变化。如何将num1更改为等于num
的新值?
答案 0 :(得分:0)
你必须将更新的数字传递给视图,以便它可以重新渲染&#34;更新的模板变量。它只渲染初始值,因为当您使用render(...)
渲染模板时,这是在上下文中传递的内容对于这个imo来说,javascript可能会更好。
答案 1 :(得分:0)
这种情况正在发生,因为每次都使用num
值1
呈现模板。您可能稍后更改num
的值,但在呈现模板后,它不会在模板中自动更改num
的值。你必须明确地做到这一点。
您还可以使用javascript作为@Slayer,每隔5秒更新模板中num
的值。
答案 2 :(得分:0)
视图仅处理一次。渲染模板后,视图不会再次执行。如果您希望每5秒在前端生成一个随机数,请在前端本身执行。你不需要一次又一次地击中后端。它只会使请求超载您的服务器。
以下是随机数生成器的javascript代码:
<script>
function myFunction() {
var x = Math.floor((Math.random() * 10) + 1);
document.getElementById("demo").innerHTML = x;
}
</script>