将变量从 JavaScript 传递到 flask 路由

Passing variable from JavaScript to flask route

我需要帮助将数据从 JavaScript 派生的变量发送到 flaks 路由。 我有提交按钮,我有烧瓶路线,我传递的变量包含在 {{}} 中。

其中一个变量 selectedItem 是在 JavaScript 中导出的。我在 alert 时得到了正确的值,但是当调用路由时,它以 None 的形式出现。 我在这里做错了什么吗?可能 html 提交无法引用 JavaScript 变量?如果我将硬编码值传递给我的路由参数,它就可以正常工作。

请帮忙。谢谢

函数 test_alert(e){ 警报("tis is test"+e.value) selectedItem=e.value; }

如果你想将你的 javascript 变量转移到你的 flask 路由,请在这里查看我的回答:

  1. Ajax/Fetch

JavaScript

var your_data = {

/* name */ : /* value */
}


  fetch(`${window.origin}/your_url`, {
    method: "POST",
    credentials: "include",
    body: JSON.stringify(your_data),
    cache: "no-cache",
    headers: new Headers({
      "content-type": "application/json"
    })
  })

Python

@app.route("/your_url", methods = ["post"])
def printer():
  data = request.get_json()
  print(data)
  return "TODO"

然而,如果你想呈现一个模板(就像提交表单一样),那么你可以这样做:

一个。在隐藏表单中执行此操作

HTML


<form id="mainform" action="/your_url" method="post">
  <input type="hidden" name="jsvar" id="jsvar" value="" />
  <button type="submit">Click Me</button>
</form>

JavaScript

var form = document.getElementById("mainform")
      var input = document.getElementById("jsvar")
      form.addEventListener('submit', function(e){
        input.value = "your_var"
        form.submit()
      })

Python


@app.route("/test",methods=["POST"]) 
def proposeswap_db_function():
  print("inside function") 
  data = request.form["jsvar"]
  print(data) 
  print('rendering mainmenu') 

  return f"{data}"