美文网首页Pythoner集中营Flask实践python进阶
博客系列:统一json返回【json和jsonify的区别】

博客系列:统一json返回【json和jsonify的区别】

作者: 我的昵称很霸气 | 来源:发表于2018-08-20 16:11 被阅读26次
  • 分享一个前后端分离(Python3 + Flask +Vuew)的个人博客,一个使用Python Flask 框架编写的个人博客。项目很轻。却很实用。
  • GitHub地址:哆啦瞎梦
  • 技术栈:Flask、Vue、Docker
  • 初始化,项目结构我就不再写了,之前写过了,没有的可以看我之前的文章。或者直接私信我,我特地准备了一个干净的模板

返回格式定制化编写

# flask_app>restful_api_manage中创建hellper.py
from flask import request, jsonify, make_response


def get_url_no_param():
    full_path = str(request.full_path)
    main_path = full_path.split('?')
    return main_path[0]


def common_response(handle, code, content, error_code=0, message="",results=[]):
    http_code = 200 if code in [204, 304, 401, 404, 409, 400] else code
    if int(http_code) not in [204, 304]:
        response_dict = {
            "results": content,
            "error_code": error_code,
            "message": message,
            "request": request.method + ' ' + get_url_no_param()
        }
        return make_response(jsonify(**response_dict),code)
    return make_response("", code)


def error_response_default(handle, code, message,error_code):
    return common_response(handle, code, None, error_code=error_code, message=message)
  • 上面直接上代码,直接复制过去就可以使用的
  • 下面一部分 为解释代码其实这段代码主要做的就是定制一个返回统一样式在json序列化返回出去
# 我定制化返回的接口样式,你也可以自己修该自己喜欢的样式
{
      "error_code": 0,
      "message": "",
      "request": "POST /v1/login",
      "results":{
                          }
}
# error_code 作为自定义错误返回码
# message 作为返回错误信息
# request 作为请求的url地址
# results 作为返回的数据
  • json 和 jsonify 的区别[返回区别,接受参数区别]
import json

from flask import Flask, jsonify

app = Flask(__name__)

@app.route('/hello')
def hello():
    # return json.dumps({'name':"hello",'word':"word"})
    return jsonify({'name':"hello",'word':"word"})

# 从测试结果上看 jsonify调用了json的dumps 并且jsonify的作用实际上就是将我们
#传入的json形式数据序列化成为json字符串,作为响应的body,并且设置响应的
#Content-Type为application/json,构造出响应返回至客户端,json则设置的是text/html

相关文章

网友评论

    本文标题:博客系列:统一json返回【json和jsonify的区别】

    本文链接:https://www.haomeiwen.com/subject/btjliftx.html