Flask处理前端POST过来的JSON数据
POST JSON数据的JS代码:
$.ajax({ url:'http://127.0.0.1:5000/calc', type : 'post', dataType:'json', headers: { "Content-Type": "application/json;charset=utf-8" }, contentType:'application/json; charset=utf-8', data:JSON.stringify({D:D,q:q,ls:ls,Lz:Lz,l:l,Uz:Uz,u:u,y:y,P:P,h1:h1,data_list:data_lists}), success:function(data){ $("#finally").show(); } })
对于前端POST请求发送过来的json数据,Flask后台可使用 request.get_data() 来接收数据,数据的格式为 bytes;加上as_text=True 参数后就变成 Unicode 了; 再使用 json.loads() 方法就可以转换字典。
示例代码:
from flask import Flask, render_template, request, make_response import json import light_calc app = Flask(__name__) app.debug = True @app.route('/', methods=['POST', 'GET']) def main(): return render_template('test_inputs.html') @app.route('/calc', methods=['POST']) def calc(): data_list = [] data = json.loads(request.get_data(as_text=True)) # request.get_data(as_text=True) : 获取前端POST请求传过来的 json 数据 for key, value in data.items(): if value == '': data[key] = 0 for key, value in data.items(): if type(value) == str and value != 'i': data[key] = float(value) for i in data['data_list']: new_dict = {} new_dict['r'] = float(i['r']) new_dict['d'] = float(i['d']) new_dict['n'] = float(i['n']) new_dict['n_2'] = float(i['n_2']) data_list.append(new_dict) print(data) print(data_list) try: result = light_calc.main(data['D'], data['q'], data['ls'], data['Lz'], data['Uz'], data['l'], data['u'], data['y'], data['P'], data['h1'], data_list) resp = make_response(result) resp.headers['Content-Type'] = 'text/json' return result except Exception as e: print(e) return '{"status":"500"}' if __name__ == '__main__': app.run()
参考链接:https://blog.csdn.net/qq_29113041/article/details/80392597
Code your future.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端