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
Flask处理前端POST过来的JSON数据的更多相关文章
- flask修改flask_wtf使其支持json数据的validation验证
flask默认是前后端不分离策略,前端通过flask+wtf表单来传递post,put...等数据. 现在前后端分离是趋势,那么对flask进行一定的修改,变为前后端分离,在前端页面中请求后端,那么请 ...
- 前端 ajax 获取后台json数据 解析
先贴代码 function edit(node) { ).text(); alert(customerid) $.ajax({ type: "post", url: "/ ...
- Python web后端接收到的json数据有前端格式的布尔值 true false
最近在后端处理前端传过来的json数据,发现,因为数据是各种数据格式的嵌套,使用json.loads(),无法将内层的数据转换为原来格式的数据,所以需要使用eval( )函数进行转换,但是如果数据含有 ...
- FullCalendar应用——读取JSON数据
开发者可以使用FullCalendar创建强大的日历日程应用,FullCalendar提供了丰富的选项设置和方法调用,使得开发者可以轻松的创建各种功能的日历程序.本文将结合实例使用PHP读取MySQl ...
- 跨域获取json数据
原文地址:http://my.oschina.net/LinBandit/blog/34570 前阵子做了一个前端动态加载json数据的应用,其中使用xmlhttprequest动态加载js,但是 ...
- 基于Ajax技术的前后端Json数据交互方式实现
前言 使用浏览器访问网站是日常生活中必不可少的一件事情,当我们在浏览器地址栏中输入网址后会看到网站的内容,那么这个过程中发生了什么?下面简单介绍下浏览器访问网站过程. 第一步:浏览器向DNS服务器发起 ...
- JSON数据的缓存
前端有时候会遇到JSON数据的缓存,后台给我们JSON数据是一个对象,直接缓存起来它存的是字符串 "[object Object]".这是因为在缓存时会隐式调用toString方法 ...
- 实现页面查看xml或json数据类似控制台效果
在前端查看xml或者json数据时,实现在类似与控制台中console的效果. 配合Ant Design的Collapse折叠面板进行展示. Collapse组件的地址:https://ant.des ...
- springmvc接收json数据的常见方式
经常使用Ajax异步请求来进行数据传输,传的数据是json数据,json数据又有对象,数组.所有总结下springmvc获取前端传来的json数据方式:1.以RequestParam接收前端传来的是j ...
随机推荐
- python中的get函数
>>> a={1:'a',2:'b'}>>> print a.get(1)a>>> print a.get(3)None
- Hyperledger(超级账本)的worldstate和SAP CRM的CRMD_CUMULAT_H
Hyperledger fabric是基于区块链技术的一个开源项目,由Linux基金会于2015年发起,目的是推进区块链数字技术和交易验证的发展和落地. Hyperledger由多个区块构成了一个有序 ...
- environ - 用户环境(变量)
SYNOPSIS 总览 extern char **environ; DESCRIPTION 描述 变量 environ 指向的是一个叫 'environment'(环境)的字符串数组 (这个变量必须 ...
- js 数组过滤 filter
let res = this.list.filter(item => routeEqual(this.currentRouteObj, item) || item.name === this.$ ...
- index 定义 v-for 未使用变量 实际是没有 :key="index"
需要有 :key="index" <Checkbox :label="item.key" :key="index" v-for=&qu ...
- Dart开发环境搭建
一.SDK的安装与环境配置 1. 下载Dark SDK http://www.gekorm.com/dart-windows/ 2. 安装SDK 3. 配置环境变量(一般已经默认生成好了,这里可以 ...
- syntax error : missing ';' before identifier
原文解决方案 #include "string.h" #include "stdafx.h" #include "Chapter 01 MyVersi ...
- 【软件构造】(转)Git详解、常用操作与版本图
版本控制与Git 转自:http://www.cnblogs.com/angeldevil/p/3238470.html 版本控制 版本控制是什么已不用在说了,就是记录我们对文件.目录或工程等的修改历 ...
- MFC隐藏在黑暗之中的大坑
大坑一:CDC会随着窗口状态的改变而改变 void K5::OnPaint() { CDC *pDC=this->GetDC(); //CDC最好设为局部变量 ... this->Rele ...
- 122. Best Time to Buy and Sell Stock II@python
Say you have an array for which the ith element is the price of a given stock on day i. Design an al ...