...
 
Commits (3)
    https://gitcode.net/WyhPro/wyh_web_tools/-/commit/5d2f6a75cdb3dcaa83b2a361435ed0adc4ce66f3 http错误进行异常捕获, 以及主动抛出http错误 2021-08-15T16:01:50+08:00 汪云辉 15655267350@163.com https://gitcode.net/WyhPro/wyh_web_tools/-/commit/44d2101d9cfb1e718cc4ae4dfe6a9516c4c3342c http错误进行异常捕获, 以及主动抛出http错误,一般根据情况在前方拦截处理 2021-08-15T16:06:30+08:00 汪云辉 15655267350@163.com https://gitcode.net/WyhPro/wyh_web_tools/-/commit/9bad528d1de2b5293440bdc89a719048cbd8ac74 新增请求钩子 2021-08-15T16:12:37+08:00 汪云辉 15655267350@163.com
......@@ -213,6 +213,43 @@ def demo6():
return "demo6", 700, {"b": 20}
############################################################可以捕获 http错误 和 系统内置错误#######################################################################
@app.errorhandler(404) # 可以捕获 http错误 和 系统内置错误
def error_404(e): # 必须定义形参来接收具体的错误信息
return "您访问的页面去浪迹天涯了... %s" % e
############################################################请求钩子#######################################################################
# 在第一次请求之前调用,可以在此方法内部做一些初始化操作
@app.before_first_request
def before_first_request():
print("before_first_request")
# 在每一次请求之前调用,这时候已经有请求了,可能在这个方法里面做请求的校验
# 如果请求的校验不成功,可以直接在此方法中进行响应,直接return之后那么就不会执行视图函数
@app.before_request
def before_request():
print("before_request")
# if 请求不符合条件:
# return "laowang"
# 在执行完视图函数之后会调用,并且会把视图函数所生成的响应传入,可以在此方法中对响应做最后一步统一的处理
@app.after_request
def after_request(response):
print("after_request")
response.headers["Content-Type"] = "application/json"
return response
# 请每一次请求之后都会调用,会接受一个参数,参数是服务器出现的错误信息
@app.teardown_request
def teardown_request(response):
print("teardown_request")
# Flask应用程序实例的run方法启动WEB服务器
if __name__ == '__main__':
print(app.url_map)
......
from flask import url_for, render_template, make_response, redirect, jsonify, session
from flask import url_for, render_template, make_response, redirect, jsonify, session, abort
from flask import request
from main import app
......@@ -205,3 +205,20 @@ def login_use_session():
return "登录成功"
else:
return "登录失败"
#####################################http错误进行异常捕获, 以及主动抛出http错误##########################################
# flask中对http错误封装了异常处理, 可以对http错误进行异常捕获, 以及主动抛出http错误
# 2.捕获指定异常
@user_blu.errorhandler(ZeroDivisionError)
def error_zero(e):
return '除数不能为0'
@user_blu.route('/index_error')
def index_error():
a = 1 / 0
abort(404) # 主动抛出http错误
return "index"