如何更改Django查看字典

时间:2015-08-27 02:29:11

标签: python django django-views

# 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的新值?

3 个答案:

答案 0 :(得分:0)

你必须将更新的数字传递给视图,以便它可以重新渲染&#34;更新的模板变量。它只渲染初始值,因为当您使用render(...)

渲染模板时,这是在上下文中传递的内容

对于这个imo来说,javascript可能会更好。

答案 1 :(得分:0)

这种情况正在发生,因为每次都使用num1呈现模板。您可能稍后更改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>