会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132388个问题
Python 全系列/第一阶段:Python入门/Python入门(动画版) 8177楼
JAVA 全系列/第一阶段:JAVA 快速入门/飞机大战小项目训练 8178楼
Python 全系列/第二阶段:Python 深入与提高/文件处理 8179楼
Python 全系列/第一阶段:Python入门/面向对象 8183楼
Python 全系列/第一阶段:Python入门/控制语句 8186楼

钩子函数好绕脑啊  还都是回调函数的用法

然后这些好抽象,好抽象啊   我盘了一天的逻辑 


老师您看我的理解 偏差大么?



flask 里面内置的信号

(相当于是对befor_request 和errorhandler等钩子函数 功能的补充)


1,before_render_template  模板渲染之前的信号  

    概念的理解:

相当于成vue 的DOM视图渲染之前  也就是 beforeMount(()=>{}) 的生命周期函数

    然后我们可以在这个信号的回调函数里面去实现相应的逻辑业务

    所以我在这个钩子函数中在写了一个简单的屏蔽非法字符的示例  


   



2,template_rendered     模板渲染之后的信号    

相当于vue的   DOM视图渲染完成之后  mounted 的生命周期函数

这玩意在vue中可以说太常用了 甚至达到了离不开他的地步,

但是由于我们flask不能直接操作DOM树 相比较用它去操作dom,干脆直接在js里去操作

但是我想到了 可以用它写了一个简单的监听 页面渲染完毕之后的性能示例  

之后的学习应该还能找到更多的用途把。



3,request_started     路由发送请求开始  在到达视图函数之前的信号  

# 约莫相当于vue中的前置路由守卫 ?  router.beforeEach((to, from, next)

这个里面我们应该可以填入一些 登录权限验证  但是感觉这个并不是常用的

因为它可以实现的业务  貌似我们用普通装饰器 或者在视图函数中都可以实现 




4,request_finished   请求结束时 在响应发送客户端之前的的时候

  那么我们在这个这个节点 获取用户的ip 然后统计到日志中 应该挺恰当的

毕竟请求已经结束了 我们写入日志 并不会影响请求的处理时间 




5,request_tearing_down  请求对象销毁的时候 发送的信号  相当于Vue的beforeDestroy 。都是在组件销毁之前发送的信号 

6,got_request_exception  请求过程中抛出异常时候 发送的信号  相当于vue中的errorCaptured  捕获错误

以上2个我们二选一  就是我们课堂说的可以捕获错误日志   这个是理解了



7,关于上下文对象还是朦朦胧胧的 感觉就挺神奇的 但是摸不着 所以它的信号触发节点 可以用来干嘛 还是不太清楚  我说理解的上下文对象 就是感觉是一个桥梁 可以传递数据  然后这个它里面的这个before_request 

每次发送请求的时候都会触发 这个感觉实用性好大!


滤的头昏脑胀的 越来越迷糊了





Python 全系列/第八阶段:轻量级Web开发利器-Flask框架/Flask高级 8190楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637