Flask开发(十八)Flask数据交互 钩子函数的使用
内容纲要
本篇导读:
- 钩子函数概念
- 常用钩子函数的使用
钩子函数的概念
根据需要,有时需要在正常执行代码的前、中、后期,强行执行一段我们想要执行的功能代码,实现这种功能的函数,就成为钩子函数。钩子函数的实质就是用特定装饰器装饰的函数。
常用的钩子函数
(1)before_first_request()函数
before_first_request()的中文意思为“处理第一次请求之前”,他实际指定的是在第一次执行请求之前可以执行的函数。该函数只会执行一次,以后就不会执行了。
(2)before_request()函数
before_request()函数表示的每一次请求之前可以执行某个特定功能的函数。一般可以用来检验用户请求是否合法、权限检查等场景。该函数每次请求之前都会被执行。
(3)after_request()函数
after_request()函数表示的每一次请求之后可以执行某个特定功能的函数。一般可以用来产生csrf_token验证码等场景。该函数要求必须给出响应对象。
(4)teardown_request()函数
teardown_request()函数表示的是每一次请求之后都会调用,会接受一个参数,参数是服务器出现的错误信息。
下面通过一个例子来说明:
from flask import Flask import time app = Flask(__name__) @app.before_first_request def before_first_request(): print('这是before_first_request函数') @app.before_request def before_request(): print('这是before_request函数') @app.after_request def after_request(respone): print('这是after_request函数') respone.headers["Content-Type"] = 'application/json' return respone @app.teardown_request def teardown_request(e): print('这是teardown_request函数') @app.route('/') def hello_world(): print('您访问了首页') time.sleep(5) return 'Hello World!' if __name__ == '__main__': app.run()
运行效果:
[successbox title="本篇习题"]
1.创建一个项目,实现文件的上传,上传目录可以自动创建,上传的文件目录为images,可以允许上传的文件类型为.jpg和.gif。
2.创建一个用户登录程序,用户名为admin,密码为123456,登录表单要求开启CSRF保护,使用Session保存登录用户名,保存期限为10天。
[/successbox]
阅读剩余
版权声明:
作者:雪落长安
链接:https://blog.wlbc321.cn/index.php/2021/05/29/flask18/
文章版权归作者所有,未经允许请勿转载。
THE END