Flask中设置响应信息和返回json数据的方法(八)

一、设置响应信息的方法

1、使用元祖,返回自定义的响应信息
from flask import Flask

app = Flask(__name__, template_folder='templates', static_url_path='/static')
@app.route('/index', methods=['GET'])
def index():
     #这里返回的时候是以这样的形式返回的,元祖中必须三个:响应体、状态码、响应头
     # return (u'首页界面', 400, {'itcast':'huaihua', 'province': 'hunan province'})---相同的方式
    return (u'首页界面'(响应体), 400(状态码), [('itcast', 'huaihua'), ('province', 'hunan province')](响应头))

响应头信息

  • 注意:状态码可以是非标准的,并且可以进行对自定义的状态码进行描述(描述最好是英文,不然因为编码不同而报错),以以上例子来进行对状态的操作。
from flask import Flask

app = Flask(__name__, template_folder='templates', static_url_path='/static')

@app.route('/index', methods=['GET'])
def index():
    return (u'首页界面', '666 serverko', {'itcast':'huaihua', 'province': 'hunan province'})

状态码的描述

2、使用make_response来构造响应信息
from flask import Flask, abort, make_response

app = Flask(__name__, template_folder='templates', static_url_path='/static')

@app.route('/index', methods=['GET'])
def index():
    res = make_response(u"首页界面") #设置响应体
    res.status = "999 server999" #设置状态码
    res.headers['city'] = 'huaihua' #设置响应头
    return res

二、返回json数据信息的方法(json就是字符串)

1、通过json.dumps(字典)将字典转化为字符串
  • 首先构造字典
  • 将字典转化为字符串,json.dumps(字典)----》转化为字符串json.loads(字符串)---->转化为字典
from flask import Flask, abort, make_response
import json

app = Flask(__name__, template_folder='templates', static_url_path='/static')

@app.route('/index', methods=['GET'])
def index():
    data_dict = {"city": "怀化", "名字": "小龙"}
    data_json = json.dumps(data_dict)
    return data_json, 200, [("Content-Type", "application/json")]
2、直接通过jsonify来进行对字典数据来操作,并且不需要改变Content-Type类型,直接在页面上显示的就是application/json类型数据
from flask import Flask, abort, jsonify

app = Flask(__name__, template_folder='templates', static_url_path='/static')

@app.route('/index', methods=['GET'])
def index():
    data_dict = {"city": "怀化", "名字": "小龙"}
    data_json = jsonify(data_dict)
    return data_json  #或者直接return jsonify(city='怀化')
发布了21 篇原创文章 · 获赞 0 · 访问量 128

猜你喜欢

转载自blog.csdn.net/qq_41706810/article/details/105737879