【发布时间】:2019-10-30 15:21:44
【问题描述】:
我有一个简单的 Flask 应用程序,其中包含一个名为 variable 的变量:
from flask import Flask, render_template
app = Flask(__name__)
variable = 100
@app.route('/', methods=['GET'])
@app.route('/index/', methods=['GET'])
def index():
return render_template('index.html', variable=variable)
def main():
app.run(debug=True, port=5000)
if __name__ == '__main__':
main()
index.html文件如下:
variable = {{ variable }}
<button onclick="setVariable(101);">
set variable to 101
</button>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script>
function setVariable(variable) {
console.log(`variable = ${variable}`);
}
</script>
有没有办法在setVariable 函数中设置变量值? 即在本例中将variable 的值设置为101。
基本上,最终目标是使用按钮动态设置variable 的值,该按钮还应更新index.html 文件中的variable = {{ variable }} 行。
编辑
以下暗示你不能这样做,必须使用 ajax 请求或类似的东西。
【问题讨论】:
-
您需要将变量发送回服务器并存储它还是只是希望它增加客户端?
-
@TomMillard 嘿,是的,回到服务器,做一些事情,然后重新加载索引页面。不确定我是否要更改 URL ...即
/index/variable=101。也许只是使用url_for(index, form=some_form)发回表单就可以了? -
附言。
variable可能是(并且是)一个对象......为了简单起见,只需放下int -
取决于你是否需要将它保存在服务器上。
标签: javascript python-3.x flask jinja2 setter