Flask中向前端传递或者接收Json文件的方法

本文介绍使用Flask框架处理JSON数据的方法,包括接收和返回JSON数据的两种方式:使用request.form.get()和request.get_data()。同时提供了一个简单的前后端分离接口示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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"}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值