Flask中向前端傳遞或者接收Json文件的方法

最近在學習Python的flask微框架,用到最多的就是和前端針對REST API進行交互,那麼天然而然傳遞Json就成爲了屢見不鮮,特地總結了一下和前端交互幾種方法。前端

1. 利用flask的request.form.get()方法

這一中方法主要利用flask的request.form.get方法,得到前端發送給後臺的json文件ajax

Python 端代碼:json

@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代碼:flask

<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

@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代碼:less

<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>
相關文章
相關標籤/搜索