flask 设置响应消息

1、Flask 设置个性化的响应体、响应头、状态码

flask 设置个性化的响应体、响应头、状态码 有两种方式

  1. 使用return直接设置特定的响应信息
  2. 使用 make_response 设置特定的响应信息

1.1、使用return直接设置特定的响应信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
from flask import Flask


app = Flask(import_name=__name__)

@app.route("/login", methods=["GET","POST"])
def login():
"""
return 响应体, 状态码status, 响应头
# 等价于
return (响应体, 状态码status, 响应头)
# 响应体 返回到页面的内容,自己定义
# status 值可以是一个数字类型的值,也可以是一个字符串,字符串表示自定义信息:"状态码 自定义的信息", 例如下面的401,可以改成自定义的状态码:"666 custom info"
# headers 可以是列表或字典,作为额外的消息标头值。
"""
# return "login fail", "666 custom info", [("header1", "123456")]
return "login fail", 401, [("header1", "123456")]

if __name__ == "__main__":
app.run(debug=True)

1.2、使用 make_response 设置特定的响应信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from flask import Flask, make_response

app = Flask(import_name=__name__)

@app.route("/login", methods=["GET","POST"])
def login():

res = make_response("login fail") # 设置响应体
res.status = "401 login fail" # 设置状态码
res.headers["header1"] = "123456" # 设置响应头

return res

if __name__ == "__main__":
app.run(debug=True)

2、其他响应方式

2.1、响应返回模版

1
2
3
4
5
6
7
8
9
10
11
12
13
from flask import Flask,render_template

app = Flask(__name__)

@app.route("/")
def hello():
# 直接返回响应字符您好,返回给浏览器
# return "您好"
# 返回模版语言,然后再解析为html语言
return render_template("index.html")

if __name__ == "__main__":
app.run()

2.2、重定向

1
2
3
4
5
6
7
8
9
10
11
12
from flask import Flask,render_template,redirect

app = Flask(__name__)

@app.route("/")
def hello():
# 重定向到百度,redirect表示重定向,参数是location
# 应用场景:当项目文件或者url地址出现变化的时候
return redirect("http://baidu.com")

if __name__ == "__main__":
app.run()

2.3、json

使用jsonify方法,不仅会把数据转成json字符串,还会把响应的类型改为application/json;参数为python的数据类型,例如字典

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

from flask import Flask,jsonify

app = Flask(__name__)

@app.route("/")
def hello():
# 4、json json定义-本质是基于键值对形式的字符串
# 4.1 使用flask内置的函数jsonify
s = {"id":"123456"}
return jsonify(s)
# 也可以手动添加键值对进去,jsonify会自动转为json数据返回到页面
# return jsonify(city="shandong",music="dj")

# 4.2 使用json模块提供的函数 dumps() 把字典转为字符串
#json_data = json.dumps(s)
# return json_data

if __name__ == "__main__":
app.run()

2.4、abort(403)

  1. 里面可以指定http状态码,但必须是存在的状态码,不然会报错,使用状态码会跳转到状态码页面
  2. 可以自定义信息返回给前端页面
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from flask import Flask, abort, Response

app = Flask(__name__)

@app.route("/login",methods=["GET"])
def login():
# 使用abort函数可以使视图函数立即终止执行
# 并可以自定义信息返回给前端
return abort(400)

# 使用Response方法自定义返回页面的内容
resp = Response("login failed")
return abort(resp)

if __name__ == "__main__":
app.run(debug=True)

flask 设置响应消息
https://flepeng.github.io/021-Python-32-框架-Flask-flask-设置响应消息/
作者
Lepeng
发布于
2021年3月31日
许可协议