无法打印从 Flask 后端发送的表单中的元素 [重复]
Posted
技术标签:
【中文标题】无法打印从 Flask 后端发送的表单中的元素 [重复]【英文标题】:Not able to print out element in Form that is sent from Flask Backend [duplicate] 【发布时间】:2021-11-13 02:00:14 【问题描述】:问题: 我正在尝试从 React 前端的表单发送数据,并简单地从后端打印出结果,尽管我一直得到一个空字符串。
尝试:
Here is the axios call:
formLogin = (e) =>
e.preventDefault();
axios
.post('http://localhost:5000/post',
name: document.getElementById("name").value,
)
.then((res) =>
console.log(res.data)
);
这是 React 表单:
<div className="use
rs-information">
<form onSubmit=this.formLogin className="patient-form" id="patient-form" name="patient-form" method='POST' action='http://localhost:5000/post' >
<input type="text" name="name" id="name" />
<label>
Address:
<input name="Address" id="users-address" />
</label>
<label>
City:
<input name="City" id="users-city" />
</label>
<label>
State:
<input name="State" id="users-state" />
</label>
<label >
Zip:
<input name="Zip" id="users-zip" />
</label>
<input type='submit' value='Submit'/>
</form>
</div>
这是 Flask 后端:
@app.route('/post',methods=['POST'])
def testPost():
name = request.form.get("name","")
print(name)
return jsonify(name=name)
这与我在前端打印响应的方式有关吗?如何检查 axios 调用是否成功?如您所见,我正在通过 Id 获取表单输入,并通过 axios 调用将该数据发送到后端。我可以就如何进行测试提供一些指导吗?我是 react 和 Flask 的新手。
【问题讨论】:
检查开发者工具网络标签 先尝试使用邮递员进行测试,以确保烧瓶按预期工作。然后用前端测试一下。 @Senthil 我看到了发布请求,但它只是显示和空字符串。看到发帖成功了。 请使用 request.json["name"] 阅读 【参考方案1】:sn-p:
axios
.post('http://localhost:5000/post',
name: document.getElementById("name").value,
)
.then((res) =>
console.log(res.data)
);
将对象发布为 JSON,而不是表单。因此,您应该使用:
@app.route('/post',methods=['POST'])
def testPost():
# name = request.form.get("name","") # remove this line
name = request.json["name"] # add this line
print(name)
【讨论】:
【参考方案2】:这里是变化。参考打印逻辑,读取json字符串
@app.route('/post',methods=['POST'])
def testPost():
content = request.json
print content['name']
return jsonify("name":name)
【讨论】:
以上是关于无法打印从 Flask 后端发送的表单中的元素 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
无法将多部分表单数据从 React 正确发送到 Express Js
如何将 Json 数据从 javaScript 发送到 Flask