一、abort函数

使用abort函数可以立即终止视图函数的执行,并可以返回给前端特定的信息

  1. 传递状态码信息,必须是标准的http状态码
    abort(403)
  2. 传递响应体信息
    resp = Response(“login failed”)
    abort(resp)
from flask import Flask,request,abort,Responseapp = Flask(__name__)@app.route("/login",methods=["GET"])
def login():name = ""pwd = ""if name !="zhangsan" or pwd !="admin":# 使用abort函数可以立即终止视图函数的执行# 并可以返回给前端特定的信息# 1. 传递状态码信息,必须是标准的http状态码# abort(403)# 2. 传递响应体信息resp = Response("login failed")abort(resp)return "login success"if __name__ == '__main__':app.run(debug=True)


二、自定义异常处理(错误信息)

@app.route("/login",methods=["GET"])
def login():name = ""pwd = ""if name !="zhangsan" or pwd !="admin":# 使用abort函数可以立即终止视图函数的执行# 并可以返回给前端特定的信息# 1. 传递状态码信息,必须是标准的http状态码abort(404)# 2. 传递响应体信息# resp = Response("login failed")# abort(resp)return "login success"# 自定义的处理错误的方法
@app.errorhandler(404)
def handle_404_error(err):# 这个函数的返回值会是前端用户看到的最终结果return "您访问的页面不存在,出现了404错误!错误信息:%s" % errif __name__ == '__main__':app.run(debug=True)


三、返回的响应数据

可以返回一个元组,这样的元组必须是 (response, status, headers) 的形式,且至少包含一个元素。 status 值会覆盖状态代码, headers 可以是一个列表或字典,作为额外的消息标头值。

  1. 使用元组或字典,返回自定义的响应信息
from flask import Flask,request,abort,Responseapp = Flask(__name__)@app.route("/index",methods=["GET"])
def index():# 1. 使用元组,返回自定义的响应信息#       响应体       状态码   响应头return "index page" , 400 , [("Itcast","python"),("City","shenzhen")]

from flask import Flask,request,abort,Responseapp = Flask(__name__)@app.route("/index",methods=["GET"])
def index():# # 1. 使用元组,返回自定义的响应信息# #       响应体       状态码   响应头# return "index page" , 400 , [("Itcast","python"),("City","shenzhen")]return "index page" , 400 , {"Itcast":"python1","City1":"sz1"}if __name__ == '__main__':app.run(debug=True)

from flask import Flask,request,abort,Responseapp = Flask(__name__)@app.route("/index",methods=["GET"])
def index():# # 1. 使用元组,返回自定义的响应信息# #       响应体       状态码   响应头# return "index page" , 400 , [("Itcast","python"),("City","shenzhen")]# return "index page" , 400 , {"Itcast":"python1","City1":"sz1"}# return 里面的状态码可以是自定义的状态码666return "index page", 666, {"Itcast": "python1", "City1": "sz1"}if __name__ == '__main__':app.run(debug=True)


2. 使用make_response 来构造想要信息

from flask import Flask,request,abort,Response,make_responseapp = Flask(__name__)@app.route("/index",methods=["GET"])
def index():# # 1. 使用元组,返回自定义的响应信息# #       响应体       状态码   响应头# return "index page" , 400 , [("Itcast","python"),("City","shenzhen")]# return "index page" , 400 , {"Itcast":"python1","City1":"sz1"}# return 里面的状态码可以是自定义的状态码666# return "index page", 666, {"Itcast": "python1", "City1": "sz1"}# return "index page", "666 itcast status", {"Itcast": "python1", "City1": "sz1"}# 2. 使用make_response 来构造想要信息resp = make_response("index page 2")# 设置状态吗resp.status = "999 itcast"# 设置响应头resp.headers["city"] = "sz"return respif __name__ == '__main__':app.run(debug=True)

Web框架——Flask系列之abort函数与自定义异常处理(十三)相关推荐

  1. Web框架——Flask系列之WTF表单验证练习(七)

    一.Web表单 web表单是web应用程序的基本功能. 它是HTML页面中负责数据采集的部件.表单有三个部分组成:表单标签.表单域.表单按钮.表单允许用户输入数据,负责HTML页面数据采集,通过表单将 ...

  2. Web框架——Flask系列之Flask简介(一)

    一.Web应用程序作用 Web(World Wide Web)诞生最初的目的,是为了利用互联网交流工作文档 二.关于Web框架 (一)什么是Web框架? 已经封装好了一段代码,协助程序快速开发,相当于 ...

  3. Web框架——Flask系列之蓝图Blueprint(二十一)

    一.为什么学习蓝图? 我们学习Flask框架,是从写单个文件,执行hello world开始的.我们在这单个文件中可以定义路由.视图函数.定义模型等等.但这显然存在一个问题:随着业务代码的增加,将所有 ...

  4. Web框架——Flask系列之数据库迁移(二十)

    一.Flask-Migrate扩展 在开发过程中,需要修改数据库模型,而且还要在修改之后更新数据库.最直接的方式就是删除旧表,但这样会丢失数据. 更好的解决办法是使用数据库迁移框架,它可以追踪数据库模 ...

  5. Web框架——Flask系列之json、jsonify模块的使用(十四)

    一.字典与json之间的格式转换 json.dumps(字典) :将python的字典转换为json字符串 json.loads(字符串) :将字符串转换为python中的字典 from flask ...

  6. Web框架——Flask系列之Flask创建app对象 路由(十二)

    一.初始化参数 import_name: 当前模块名 static_url_path:静态资源的url前缀,默认为'static' static_folder: 静态文件目录名,默认'static' ...

  7. Web框架——Flask系列之Flask中的特殊变量和方法(十九)

    在Flask中,有一些特殊的变量和方法是可以在模板文件中直接访问的. 一.config对象 config 对象就是Flask的config对象,也就是 app.config 对象. {{ config ...

  8. Web框架——Flask系列之宏、继承、包含(十八)

    一.宏 类似于python中的函数,宏的作用就是在模板中重复利用代码,避免代码冗余. Jinja2支持宏,还可以导入宏,需要在多处重复使用的模板代码片段可以写入单独的文件,再包含在所有模板中,以避免重 ...

  9. Web框架——Flask系列之请求上下文与应用上下文请求钩子Flask-Script扩展命令行(十七)

    一.请求上下文和应用上下文 请求上下文(request context) request和session都属于请求上下文对象. 应用上下文(application context) current_a ...

最新文章

  1. 【EASYDOM系列教程】之 DOM 元素树
  2. 出现java.lang.IllegalArgumentException异常
  3. Ubuntu 14.04 台式机锐捷使用:
  4. 计算机组成原理译码器选择,计算机组成原理第三章习题参考解析.doc
  5. Java源码解析——Java IO包
  6. 函数04 - 零基础入门学习C语言35
  7. getDate()返回日期不一致问题引发的bug
  8. clocks_per_sec 时间不正确_你该拥有的不只是护肤品,还有正确护肤时间表
  9. 用户登录色一句java_用户权限及角色
  10. scp带密码后台传输
  11. Eclipse中activiti插件的安装
  12. 在Oracle中使用Guid
  13. MyEclipse 10.5与ExtJS 4.1.1自动代码提示
  14. TM(qq) 默认表情丢失
  15. 前度监控(埋点)设计方案
  16. couldn't find mysql server_MySQL安装错误Couldn't find MySQL server
  17. 美团活动又来了|0.98充10元话费,秒到账,不实名不绑卡,超简单!
  18. 如此美妙,Python 处理CSV、JSON和XML数据的方法真简便
  19. Error: Rule can only have one resource source (provided resource and test + include + exclude) in {.
  20. 数据通讯中的心跳信号

热门文章

  1. 计算机网络应用云计算,计算机网络云计算的类型
  2. 艾宾浩斯记忆表格excel_Excel全年学习复习计划表(艾宾浩斯遗忘曲线)
  3. python词云改颜色_一种用Python生成词云
  4. Redis Python
  5. 【解决】jupyter在deepin安装上的坑
  6. python安装opencv出现错误_Python3安装OpenCV出错,如何解决?
  7. python 经典类和新式类
  8. java 公因数_Java程序(最大公因数与最小公倍数)
  9. jmeter强大的扩展插件!!
  10. IEnumerable和IQueryable的区别