一、absort()
终止:
使用abort
函数可以立即终止视图函数的执行,并可以返回前端特定的信息
from flask import Flask,request,abort,Response
app = Flask(__name__)
@app.route("/login",methods=['Get'])
def login():
# name = request.form.get("name")
# pwd = request.form.get("pwd")
name = pwd = ""
if name != "zhangsan" or pwd != "password":
# 1、传递状态码[必须时标准的http状态码]
# abort(400)
# 2、传递响应体信息
resp=Response("Login Failed")
abort(resp)
return "Sucess Login"
if __name__ == "__main__":
app.run()
二、自定义异常:
# 自定义处理错误
@app.errorhandler(404)
def error(e):
return '您请求的页面不存在了,请确认后再次访问!\n错误信息:%s'%e
三、设置响应信息的方法
1、元组返回
from flask import Flask
app = Flask(__name__)
@app.route("/index")
def index():
# 使用元组返回自定义的响应信息
# 响应体,状态码,响应头
# 响应头字典和元组都可以,此处的状态码可以任意设置
# return "index page",400,[("A","B"),("CCC","DDD")]
return "index page","10086 Hi! I am status.",[("A","B"),("CCC","DDD")]
if __name__ == "__main__":
app.run(debug=True)
2、使用make_response
构造
from flask import Flask,make_response
app = Flask(__name__)
@app.route("/index")
def index():
# 使用make_response构造
resp = make_response("index page 2")
resp.status="10010 I AM BOOM!" # 设置状态码
resp.headers["city"]='sz' # 设置响应头
return resp
if __name__ == "__main__":
app.run(debug=True)
四、返回json
数据的方法
- 麻烦的方法:
from flask import Flask
import json
app = Flask(__name__)
@app.route("/index")
def index():
data={
'city':'sz',
'age':18
}
json_str=json.dumps(data)
return json_str,200,{"Content-Type:application/json"}
if __name__ == "__main__":
app.run(debug=True)
- 快捷方法:
jsonify
帮助转为json
数据,并设置响应头Content-Type
和状态码
from flask import Flask,jsonify
app = Flask(__name__)
@app.route("/index")
def index():
data={
'city':'sz',
'age':18
}
return jsonify(data)
# return jsonify(city='sz',age=18)
if __name__ == "__main__":
app.run(debug=True)