博客系列:统一json返回【json和jsonify的区别】
2018-08-20 本文已影响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