1. 利用flask的request.form.get()方法
这一中方法主要利用flask的request.form.get方法,获得前端发送给后台的json文件
Python 端代码:
@app.route('/sendjson', methods=['POST'])
def sendjson():
# 接受前端发来的数据
data = json.loads(request.form.get('data'))
# lesson: "Operation System"
# score: 100
lesson = data["lesson"]
score = data["score"]
# 自己在本地组装成Json格式,用到了flask的jsonify方法
info = dict()
info['name'] = "pengshuang"
info['lesson'] = lesson
info['score'] = score
return jsonify(info)
JS代码:
<script>
$(document).ready(function () {
var data = {
data: JSON.stringify({"lesson": "Operation System", "score": 100})
}
$.ajax({
url:"/sendjson",
type: 'POST',
data: data,
success: function (msg) {
alert(msg.name)
}
})
});
</script>
2. 利用flask的request.get_data()方法
Python端代码:
@app.route('/sendjson2',methods=['POST'])
def sendjson2():
# 接收前端发来的数据,转化为Json格式,我个人理解就是Python里面的字典格式
data = json.loads(request.get_data())
# 然后在本地对数据进行处理,再返回给前端
name = data["name"]
age = data["age"]
location = data["location"]
data["time"] = "2016"
# Output: {u'age': 23, u'name': u'Peng Shuang', u'location': u'China'}
# print data
return jsonify(data)
相比第一种方法JS的代码,这一种更常见也更容易理解一些,在前端组织好Json,再传递给后台
JS代码:
<script>
$(document).ready(function () {
var student = new Object();
student.name = "Peng Shuang";
student.age = 23;
student.location = "China";
var data = JSON.stringify(student)
$.ajax({
url: "/sendjson2",
type: "POST",
data: data,
success: function (msg) {
alert(msg.time)
}
})
})
</script>
flask实现简单的接收json返回json的接口
刚刚学习python想用python flask实现简单的接收json返回json的接口,微型的前后端分离接口,非常简单直接上代码。
结合http://docs.jinkan.org/docs/flask/quickstart.html#a-minimal-application这个flask文档实现
#!/usr/bin/python # -*- coding: utf-8 -*- import json from flask import Flask from flask import request from flask import redirect from flask import jsonify app = Flask(__name__) @app.route('/' , methods=['GET', 'POST']) def index(): if request.method == 'POST': a = request.get_data() dict1 = json.loads(a) return json.dumps(dict1["data"]) else: return '<h1>只接受post请求!</h1>' @app.route('/user/<name>') def user(name): return'<h1>hello, %s</h1>' % name if __name__ =='__main__': app.run(debug=True)请求数据为{
"opr": "add",
"data": {
"userName": "98997",
"disc": "hudihiudhu",
"expDate":"2",
"ip": [
"10.10.11.1",
"10.10.11.2",
"10.10.11.3"
]
}
}
返回{"userName": "98997", "ip": ["10.10.11.1", "10.10.11.2", "10.10.11.3"], "disc": "hudihiudhu", "expDate": "2"}