钩子函数
1.什么是钩子函数
在正常执行的代码前后,插入一段想要执行的代码,这称为钩子函数.
2.Flask
中的钩子函数
上一篇分析了源码
flask/app.py
中的Flask()
类,其实它除了实现了应用上下文,请求上下文之外,还实现了一些常用的钩子hook
函数.常见的钩子函数有:
钩子函数 描述 before_first_request
在处理第一个请求前执行,比如连接数据库操作 before_request
在每次执行请求前执行,比如权限校验 after_request
在每次请求之后调用,前提是没有异常抛出 errorhandler
在访问应用出错时,根据错误码,做一些定制 context_processor
上下文钩子,返回一个字典对象,可以在 jinja
模板中使用teardown_request
在响应销毁时,执行一个函数 teardown_appcontext
不管时候有异常,当应用上下文被移除时,执行的函数.
1.before_first_request
只有在处理第一次请求之前会执行,之后都不会执行.
应用场景:可以加载一些函数,用来对网站进行一些测试,检查,如果发现异常,则截断后续的请求,将整个
Flask
应用停止运行.
from flask import Flask
app = Flask(__name__)
app.config.update({
'DEBUG':True,
'AUTO_TEMPLATES_RELOAD':True
})
@app.route('/')
def index():
return 'Hello World!&#