如何在不使用 AJAX 的情况下更新烧瓶模板变量
How to update a flask template variable without using AJAX
我有一个 flask 模板,我需要更新模板中的一个变量(render_template('file.html', somevar='hello'
)。当 somevar
发生变化时,我希望它在模板中也发生变化。你会怎么做?
main.py:
from flask import Flask, render_template
app = Flask('app')
somevar = 'somestring'
@app.route('/')
def hello_world():
return render_template('index.html', somevar=somevar)
@app.route('/alter')
def alter():
global somevar
somevar = 'anotherstring'
return 'completed'
app.run(host='0.0.0.0', port=8080)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
{{ somevar }}
</body>
</html>
当 /alter
端点被命中时,我希望 index.html 更新而不重新加载它。
我已经试过了AJAX,我想知道没有它有没有什么办法。
没有 Ajax 这是不可能的。
但是你也可以return更新后的HTML:
from flask import Flask, render_template
app = Flask('app')
somevar = 'somestring'
@app.route('/')
def hello_world():
return render_template('index.html', somevar=somevar)
@app.route('/alter')
def alter():
global somevar
somevar = 'anotherstring'
return render_template('index.html', somevar=somevar)
app.run(host='0.0.0.0', port=8080)
我有一个 flask 模板,我需要更新模板中的一个变量(render_template('file.html', somevar='hello'
)。当 somevar
发生变化时,我希望它在模板中也发生变化。你会怎么做?
main.py:
from flask import Flask, render_template
app = Flask('app')
somevar = 'somestring'
@app.route('/')
def hello_world():
return render_template('index.html', somevar=somevar)
@app.route('/alter')
def alter():
global somevar
somevar = 'anotherstring'
return 'completed'
app.run(host='0.0.0.0', port=8080)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
{{ somevar }}
</body>
</html>
当 /alter
端点被命中时,我希望 index.html 更新而不重新加载它。
我已经试过了AJAX,我想知道没有它有没有什么办法。
没有 Ajax 这是不可能的。
但是你也可以return更新后的HTML:
from flask import Flask, render_template
app = Flask('app')
somevar = 'somestring'
@app.route('/')
def hello_world():
return render_template('index.html', somevar=somevar)
@app.route('/alter')
def alter():
global somevar
somevar = 'anotherstring'
return render_template('index.html', somevar=somevar)
app.run(host='0.0.0.0', port=8080)