Flask框架钩子函数功能与用法分析


Posted in Python onAugust 02, 2019

本文实例讲述了Flask框架钩子函数功能与用法。分享给大家供大家参考,具体如下:

在Flask中钩子函数是使用特定的装饰器的函数。为什么叫做钩子函数呢,是因为钩子函数可以在正常执行的代码中,插入一段自己想要执行的代码,那么这种函数就叫做钩子函数。

  • before_first_request:Flask项目第一次部署后会执行的钩子函数。
  • before_request:请求已经到达了Flask,但是还没有进入到具体的视图函数之前调用。一般这个就是在函数之前,我们可以把一些后面需要用到的数据先处理好,方便视图函数使用。

before_request

@app.before_first_request
def first_request():
  print('只有在处理第一次请求之前执行')
@app.before_request
def before_request():
  print('在视图函数执行之前执行')

context_rocessor

只用这个钩子函数,必须返回一个字典。这个字典的值在所有模板中都可以使用。这个钩子函数的作用是,如果一些在很多模板中都要用到的变量,那么就可以使用这个钩子函数来返回,而不是在每个视图函数汇总的render_template中去写,这样可以让代码更加简洁和好维护。

@app.context_processor
def context_processor():
  return {{'current_user':'xxx'}}

errorhandler

在发生异常的时候,比如404,500错误,自定义错误的页面,在errorhangdler装饰的钩子函数下:

1. 要返回状态码

2. 必须写一个参数,来接受错误的信息

使用flask.abort可以手动的抛出相应的错误,比如开发者发现参数不正确的时候可以手动的抛出一个404错误。

@app.errorhandler(500)
def server_error(error):
  return render_template('500.html'),500
@app.errorhandler(404)
def page_not_found(error):
  return render_template('404.html'),404

希望本文所述对大家基于flask框架的Python程序设计有所帮助。

Python 相关文章推荐
python数据结构之二叉树的遍历实例
Apr 29 Python
Python Tkinter GUI编程入门介绍
Mar 10 Python
pandas 实现字典转换成DataFrame的方法
Jul 04 Python
Python OpenCV处理图像之图像像素点操作
Jul 10 Python
浅谈python在提示符下使用open打开文件失败的原因及解决方法
Nov 30 Python
python面向对象法实现图书管理系统
Apr 19 Python
梅尔频率倒谱系数(mfcc)及Python实现
Jun 18 Python
python求平均数、方差、中位数的例子
Aug 22 Python
基于python实现学生信息管理系统
Nov 22 Python
如何解决flask修改静态资源后缓存文件不能及时更改问题
Aug 02 Python
python openCV自制绘画板
Oct 27 Python
如何一键升级Python所有包
Nov 05 Python
pandas DataFrame行或列的删除方法的实现示例
Aug 02 #Python
Python基于BeautifulSoup和requests实现的爬虫功能示例
Aug 02 #Python
详解pandas DataFrame的查询方法(loc,iloc,at,iat,ix的用法和区别)
Aug 02 #Python
pandas DataFrame创建方法的方式
Aug 02 #Python
django项目环境搭建及在虚拟机本地创建django项目的教程
Aug 02 #Python
Django缓存系统实现过程解析
Aug 02 #Python
tensor和numpy的互相转换的实现示例
Aug 02 #Python
You might like
实用PHP会员权限控制实现原理分析
2011/05/29 PHP
php处理文件的小例子(解压缩,删除目录)
2013/02/03 PHP
jquery下组织javascript代码(js函数化)
2010/08/25 Javascript
JavaScrip单线程引擎工作原理分析
2010/09/04 Javascript
cookie中的path与domain属性详解
2013/12/18 Javascript
JS中的构造函数详细解析
2014/03/10 Javascript
Javascript 构造函数详解
2014/10/22 Javascript
Angularjs整合微信UI(weui)
2016/03/15 Javascript
JS实现鼠标框选效果完整实例
2016/06/20 Javascript
jQuery实现图片滑动效果
2017/03/08 Javascript
vuejs父子组件之间数据交互详解
2017/08/09 Javascript
微信小程序转发事件实现解析
2019/10/22 Javascript
使用JavaScript获取扫码枪扫描得到的条形码的思路代码详解
2020/06/10 Javascript
小程序实现录音功能
2020/09/22 Javascript
[04:19]完美世界携手游戏风云打造 卡尔工作室模型介绍篇
2013/04/24 DOTA
Python 连连看连接算法
2008/11/22 Python
JSON Web Tokens的实现原理
2017/04/02 Python
对numpy的array和python中自带的list之间相互转化详解
2018/04/13 Python
python使用__slots__让你的代码更加节省内存
2018/09/05 Python
Python从Excel中读取日期一列的方法
2018/11/28 Python
django框架面向对象ORM模型继承用法实例分析
2019/07/29 Python
Python语言异常处理测试过程解析
2020/01/08 Python
Python os模块常用方法和属性总结
2020/02/20 Python
如何用canvas实现在线签名的示例代码
2018/07/10 HTML / CSS
瑜伽国际:Yoga International
2018/04/18 全球购物
开业典礼主持词
2014/03/21 职场文书
安全口号大全
2014/06/21 职场文书
艺术学院毕业生自荐信
2014/07/05 职场文书
市场策划求职信
2014/08/07 职场文书
初中毕业典礼演讲稿
2014/09/09 职场文书
干部作风建设个人剖析材料
2014/10/11 职场文书
2014年关工委工作总结
2014/11/17 职场文书
个人总结与自我评价2015
2015/03/11 职场文书
圣贤教育改变命运观后感
2015/06/16 职场文书
我的中国梦心得体会范文
2016/01/05 职场文书
MySQL分区表管理命令汇总
2022/03/21 MySQL