AJAX Post Request to Python Flask
本问题已经有最佳答案,请猛点这里访问。
尝试了解如何将post请求发送到后端(flask)。
在HTML中,我有3个复选框和一个提交按钮。我的提交按钮返回一个javascript数组,我正在尝试将该javascript数组发送到API端点"api/regions",您可以在下面看到。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | $(document).ready(function() { $("#loadData").click(getChecked); }); function getChecked() { event.preventDefault(); var checkboxes = $(".form-check input[type=checkbox]:checked"); //toArray: convert checkboxes object to javascript array var labels = checkboxes.toArray().map(checkbox => checkbox.value); $.ajax({ url: 'api/regions', type:"POST", data: JSON.stringify(labels), processData: false, contentType:"application/json; charset=UTF-8", success: function(response) { console.log(response); }, error: function(error) { console.log(error); } }); } |
在app.py中,我有一个端点API的路由:
1 2 3 4 5 6 7 8 | @app.route('/api/regions', methods=['POST']) def regions(): regions = request.json with open("C:\\test.txt", 'w') as f: f.write(regions) if __name__ =="__main__": app.run(debug=True) |
号
我知道没有返回语句,我只是想写我从中得到的数据
1 | regions = request.json |
到一个文件。"C: est.txt"
当我试图做到这一点时,我得到的错误是500,这并没有给我太多的工作机会。我不确定我所缺少的是在前端还是后端,所以希望有人能告诉我哪里出错了。
From the Flask Documentation,
If the mimetype is application/json this will contain the parsed JSON data. Otherwise this will be
None .
钥匙在那里,是JSON的原始数据,而不是原始数据。如果你想写一份文件,你就必须先把它写回去,也许用
1 2 | with open("C:\\test.txt", 'w') as f: f.write(json.dumps(regions)) |