【问题标题】:pass variable from JavaScript to Python using Flask [closed]使用 Flask 将变量从 JavaScript 传递到 Python [关闭]
【发布时间】:2021-03-18 23:02:16
【问题描述】:

这是我一直坚持的错误。

var longitude = 20

如何在不使用任何复杂的 GET/POST 请求的情况下使用 Flask 将其传递给 python?我的最终目标是在 python 控制台中打印语句。

print(getfromjavascript(longitude))

伪代码

【问题讨论】:

  • 您当然需要提出请求,无论是否“复杂”。 JS 在客户端运行,Python/Flask 在服务器上运行,从客户端到服务器的唯一通信方式是通过 HTTP 请求。这是网络工作方式的基础:)
  • 我对 Flask 很陌生。您介意详细说明吗?
  • 与 Flask 无关——你需要通过它的声音来学习客户端/服务器架构的基础知识。 This question 及其答案可能会有所帮助。
  • 对于 Flask 本身,如果您不熟悉它,我建议您通过 Flask tutorial。那里有一个部分接收来自 UI/前端的请求:flask.palletsprojects.com/en/1.1.x/tutorial/views/…。您需要设置类似的东西:在请求中发送变量值,在后端接收请求,然后您可以使用接收到的值做任何您想做的事情。没有办法提出请求。

标签: javascript python flask


【解决方案1】:

好的,有很多东西要学,但是一个例子让一切变得更好理解:

app.py

from flask import Flask, request, render_template

app = Flask(__name__)

@app.route('/', methods=['GET', 'POST'])
def index():
    if request.method == 'POST':
        print(request.form.get('longitude'))
    return render_template('index.html')

if __name__ == '__main__':
    app.run()

templates/index.html

<form method="POST" action="">
    <input type="text" name="longitude" />
    <input type="submit" value="Submit" />
</form>
<script>
    var longitude = 20;
    var request = new XMLHttpRequest();
    request.open('POST', '/', true);
    request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    request.onreadystatechange = function() {
        // do something
    };
    request.send('longitude=' + longitude);
</script>

当您仅在控制台上单击按钮时,此简单代码将打印经度值,但还会触发来自 Javascript 的发布请求,该请求将在您每次访问页面时自动执行。

【讨论】:

    猜你喜欢
    • 2016-09-12
    • 2017-06-12
    • 2021-12-30
    • 2016-03-29
    • 2020-10-22
    • 1970-01-01
    • 2023-01-11
    • 2015-02-03
    • 2016-07-08
    相关资源
    最近更新 更多