Pythoner集中营Flask实践python进阶

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

2018-08-20  本文已影响26人  我的昵称很霸气

返回格式定制化编写

# 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)
# 我定制化返回的接口样式,你也可以自己修该自己喜欢的样式
{
      "error_code": 0,
      "message": "",
      "request": "POST /v1/login",
      "results":{
                          }
}
# error_code 作为自定义错误返回码
# message 作为返回错误信息
# request 作为请求的url地址
# results 作为返回的数据
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
上一篇下一篇

猜你喜欢

热点阅读