zoukankan      html  css  js  c++  java
  • Flask使用json或jsonify返回响应的数据

    前言:

    在做网站前后端数据交互的时候,我们经常需要使用Ajax等方法向后端发送请求来获取响应的数据,而我们经常需要的就是json格式的响应数据,它实际上就是一个字符串。要知道Flask如何返回json响应数据,首先就需要知道如何将字典dict转化为json字符串。

    使用json库dict和json字符串的转化

    import json
    def dict_to_json():
        data = {"name": "mjl", "pwd": "123456"}
        print(type(data)) #dict
        # 将dict转为json字符串
        res = json.dumps(data)
        print(type(res))  # str  '{"name": "mjl", "pwd": "123456"}'
    
        # 将json字符串转为dict
        rec = json.loads(res)
        print(type(res))  # dict {'name': 'mjl', 'pwd': '123456'}

    使用json库返回json响应数据

    @app.route('/test1', methods=["GET", "POST"])
    def test1():
        data = {
            "name": "mjl",
            "age": 21,
        }
        res_json = json.dumps(data)
        return res_json

    浏览器请求如下:

    结论

    数据结果正确返回,如果单纯直接返回响应消息,Content-Type:text/html 是不正确的,应该改为application/json 才对。

    解决

    设置响应消息的headers,比较麻烦

    # return 响应体, 状态码, 响应头
        return res_json, 200, {"Content-Type":"application/json"}

    使用jsonify返回json响应数据(推荐使用)

    from flask import jsonify
    @app.route('/test2', methods=["GET", "POST"])
    def test2():
        data = {
            "name": "mjl",
            "age": 21,
        }
        return jsonify(data)

    浏览器请求如下:

    结论

    jsonify可以正确且简单的返回响应数据。

    jsonify不单单可以将dict转为json响应数据,还可以直接往里面写参数值

    @app.route('/test3', methods=["GET", "POST"])
    def test3():
        return jsonify(name='mjl',age=21)

    本文参考链接:https://www.cnblogs.com/MoooJL/p/14449909.html

  • 相关阅读:
    小程序 阻止区域冒泡
    全国地址 一级处理
    新项目
    JDK环境变量的配置1
    用DOS命令来运行Java代码
    Myeclipse详细使用教程
    ​'JAVAC' 不是内部或外部命令的解决方法
    怎么检测JDK环境变量是否配置正确
    JDK环境变量的配置
    JDK安装图解
  • 原文地址:https://www.cnblogs.com/dazhi151/p/14499533.html
Copyright © 2011-2022 走看看