flask更改模板中的jinja2变量内容并显示新内容

时间:2015-04-22 12:56:46

标签: python html jinja2

我不知道我的问题是多么愚蠢,但我真的无法弄清楚如何解决它

所以,我有一个由flask呈现的html页面,该页面包含一个最初为空的变量{{log}}(字符串)。

@app.route('/some-roote')
def function(id,log='some string'):
    return render_template('webpage.html',log= log)

最初呈现页面时,一切正常,('某些字符串'显示在UI中)

在我执行的某个时刻,我想更改{{log}}的内容并向用户显示新内容。

我尝试过:

logs = new content;
render_template('webpage.html',log= logs)

但没有任何事情发生,从字面上看,字符串值没有变化,网页没有刷新,我也没有收到任何错误......

请帮帮我们。我做错了什么?

1 个答案:

答案 0 :(得分:2)

Jinja2模板无法在不刷新浏览器的情况下更改页面,它们只是您在将动态内容发送到浏览器之前将其放置在页面上的一种方式。要在客户端的浏览器上更改页面,您需要使用javascript。

您可以从浏览器执行ajax调用回服务器,然后服务器可以发回更新的日志变量。但是,您需要再次使用javascript来更新DOM上的文本。

最好的库是jQuery。您还可以使用AngularJS和EmberJS等框架来帮助您进行数据绑定(以及许多其他事情)。

你必须扩展到javascript以实现这种交互性。不幸的是,Python不能在浏览器中本机运行。