python后台代码书写规范与语法(1)—— response

一、 指定response返回的格式类型是json

我们客户端(浏览器)的request对象发送到服务器端,服务器做出响应,把response对象发送给客户端。我们也不能把response就认为是我们看到的五颜六色的页面,那只是response中的body的一部分。它还有headers等信息,服务器端发送出来的response我们是可以参与其中的,就是我们可以控制服务器端返回给客户端的是什么。

		response_data = {}
        response_data['subscriptions'] = SubscriptionList
        response = make_response(jsonify(response_data),200)
        # 指定resposne返回的格式类型是json
        response.headers['Content-Type'] = 'application/json'
        return response

python后台代码书写规范与语法(1)—— response_第1张图片
**返回json响应数据方法二:**使用dumps,转换为json字符串

from flask import Flask, request, abort, make_response
 
import json
 
# 实例化app
app = Flask(import_name=__name__)
 
@app.route('/login', methods=["GET","POST"])
def login():
 
    data = {
        "user_name": "libai",
        "user_age": 18,
    }
 
    res_json = json.dumps(data)
 
    # return 响应体, 状态码, 响应头
    return res_json, 200, {"Content-Type":"application/json"}
 
if __name__ == '__main__':
    app.run(debug=True)

方法三: 在Flask框架中有一个jsonify的方法可以将这个过程简化,
使用jsonify来返回json响应数据用jsonify的话,content-type直接是json,不需要修改响应头

from flask import Flask, jsonify
 
# 实例化app
app = Flask(import_name=__name__)
 
@app.route('/login', methods=["GET","POST"])
def login():
 
    data = {
        "user_name": "libai",
        "user_age": 18,
    }
 
    return jsonify(data)
 
if __name__ == '__main__':
    app.run(debug=True)

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

from flask import Flask, jsonify
 
# 实例化app
app = Flask(import_name=__name__)
 
@app.route('/login', methods=["GET","POST"])
def login():
 
    return jsonify(token=123456, gender=0)
 
if __name__ == '__main__':
    app.run(debug=True)

你可能感兴趣的:(python-web,python函数)