【问题标题】:How to keep rendering a template? [duplicate]如何继续渲染模板? [复制]
【发布时间】:2018-07-12 11:45:03
【问题描述】:

如何刷新或重新呈现页面?

所以我想有一个像这样的单独函数:

changed_var = "bb"

def Check():
    changed_var = "xx"


app = Flask(__name__)

@app.route("/")
def server_1():
    render_template_string('index.html', changed_var="bb")

app.run()

所以 changed_var 每隔一秒左右就会发生变化,我将如何继续调用 server_1,以便它重新渲染并更改 changed_var?我曾尝试从 Check() 调用 server_1,但遇到了错误。本质上,我想调用flask并告诉它从“正常”函数中“重新渲染”。

【问题讨论】:

  • 不需要重新渲染整个页面,只需发出ajax请求更新changed_var的值
  • 我试图避免使用 ajax...只是试图“重新渲染”模板。
  • 为什么不使用 ajax?
  • 你只需要更新changed_var的值
  • 我只是在寻找重新渲染的方法

标签: python flask


【解决方案1】:

看看这是否能让你通过,可能是你给模板引擎的一个简单的错字,它接受模板变量并总是为其提供一个文字“bb”值。

changed_var = "bb"

def Check():
    changed_var = "xx"


app = Flask(__name__)

@app.route("/")
def server_1():
    render_template_string('index.html', changed_var=changed_var)

app.run()

基本上变量和值是这样的

render_template_string('index.html', templateVarName=pythonVarName )

但人们并不经常使用这种明确的名称差异,因为如果您正在搜索代码库,则无论其上下文如何,您都希望访问所有实例。作为开发人员,尽管您需要跟踪变量正在使用的上下文。

【讨论】:

  • 问题是这只能工作一次......所以它加载正确的变量......但随后 changed_var 再次更改为“等等等等”......但是我如何触发 server_1()?
  • @KingPey 使用ajax更新changed_var的值
  • 这是一个轮询刷新计时器解决方案的通用方法;但是 stackoverflow.com/questions/2787679/… 并没有真正针对 Flask 的任何东西
猜你喜欢
  • 2016-11-13
  • 2020-07-19
  • 2016-06-24
  • 1970-01-01
  • 2014-05-23
  • 2010-11-30
  • 1970-01-01
  • 2013-06-16
  • 2017-10-13
相关资源
最近更新 更多