05-abort函数、自定义错误、 视图函数的返回值
abort函数的使用
如果在视图函数执行过程中,出现了异常错误,我们可以使用abort函数立即终止视图函数的执行。通过abort函数,可以向前端返回一个http标准中存在的错误状态码,表示出现的错误信息。
使用abort抛出一个http标准中不存在的自定义的状态码,没有实际意义。如果abort函数被触发,其后面的语句将不会执行。其类似于python中raise。
# coding:utf-8 from flask import Flask, request, abort, Response app = Flask(__name__) @app.route("/login", methods=["GET"]) def login(): # name = request.form.get() # pwd = request.form.get() name = "" pwd = "" if name != "zhangsan" or pwd != "admin": # 使用abort函数可以立即终止视图函数的执行 # 并可以返回给前端特定的信息 # 传递状态码信息, 必须是标准的http状态码 abort(404) # 传递响应体信息 # resp = Response("login failed") # abort(resp) return "login success" # 自定义(注册)错误处理的方法 @app.errorhandler(404) def handle_404_error(err): """自定义的处理错误方法""" # 这个函数的返回值会是前端用户看到的最终结果 return u"出现了404错误, 错误信息:%s" % err if __name__ == '__main__': app.run(debug=True)
设置响应信息的方法
# coding:utf-8 from flask import Flask, make_response app = Flask(__name__) @app.route("/index") def index(): # 1 使用元祖,返回自定义的响应信息 # 响应体 状态码 响应头 # return "index page", 400, [("Flask", "pyton"), ("City", "shenzhen")] # return "index page", 400, {"Flask1": "python1", "City1": "sz1"} # return "index page", 666, {"Flask1": "python1", "City1": "sz1"} # return "index page", "666 Flask status", {"Flask1": "python1", "City1": "sz1"} # return "index page", "666 Flask status" # 2 使用make_response 来构造响应信息 resp = make_response("index page 2") resp.status = "999 Flask" # 设置状态码 resp.headers["city"] = "cq" # 设置响应头 return resp if __name__ == '__main__': app.run(debug=True)
返回json数据的方法
# coding:utf-8 from flask import Flask, jsonify import json app = Flask(__name__) @app.route("/index") def index(): # json就是像字典的字符串 data = { "name": "python", "age": 24 } # # json.dumps(字典) 将python的字典转换为json字符串 # # json.loads(字符串) 将字符串转换为python中的字典 # # json_str = json.dumps(data) # # return json_str, 200, {"Content-Type": "application/json"} # jsonify 里面实现了将python字典 对象转为json字符串,并设置响应头 Content-Type 为application/json 传入Python对象即可 # return jsonify(data) return jsonify(city="cq", country="china") if __name__ == '__main__': app.run(debug=True)
json就是长得像字典的字符串
本文来自博客园,作者:元贞,转载请注明原文链接:https://www.cnblogs.com/yuleicoder/articles/10283177.html