将变量从 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 路由,请在这里查看我的回答:
- 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}"
我需要帮助将数据从 JavaScript 派生的变量发送到 flaks 路由。 我有提交按钮,我有烧瓶路线,我传递的变量包含在 {{}} 中。
其中一个变量 selectedItem 是在 JavaScript 中导出的。我在 alert 时得到了正确的值,但是当调用路由时,它以 None 的形式出现。 我在这里做错了什么吗?可能 html 提交无法引用 JavaScript 变量?如果我将硬编码值传递给我的路由参数,它就可以正常工作。
请帮忙。谢谢
函数 test_alert(e){ 警报("tis is test"+e.value) selectedItem=e.value; }如果你想将你的 javascript 变量转移到你的 flask 路由,请在这里查看我的回答:
- 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}"