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生成器的使用方法
Nov 21 Python
Python3中使用urllib的方法详解(header,代理,超时,认证,异常处理)
Sep 21 Python
python 使用get_argument获取url query参数
Apr 28 Python
Python3.遍历某文件夹提取特定文件名的实例
Apr 26 Python
Python3中内置类型bytes和str用法及byte和string之间各种编码转换 问题
Sep 27 Python
Python对HTML转义字符进行反转义的实现方法
Apr 28 Python
Python可迭代对象操作示例
May 07 Python
Python FTP文件定时自动下载实现过程解析
Nov 12 Python
pytorch逐元素比较tensor大小实例
Jan 03 Python
Python的in,is和id函数代码实例
Apr 18 Python
Python 解决相对路径问题:"No such file or directory"
Jun 05 Python
Python 实现键盘鼠标按键模拟
Nov 18 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的Yii框架入门使用教程
2016/02/15 PHP
php基于CodeIgniter实现图片上传、剪切功能
2016/05/14 PHP
javascript简单事件处理和with用法介绍
2013/09/16 Javascript
javascript 处理null及null值示例
2014/06/09 Javascript
js怎么覆盖原有方法实现重写
2014/09/04 Javascript
JQuery的Ajax中Post方法传递中文出现乱码的解决方法
2014/10/21 Javascript
z-blog SyntaxHighlighter 长代码无法换行解决办法(jquery)
2014/11/16 Javascript
windows下安装nodejs及框架express
2015/08/07 NodeJs
Node.js编写组件的三种实现方式
2016/02/25 Javascript
Nodejs获取网络数据并生成Excel表格
2020/03/31 NodeJs
微信小程序 数据封装,参数传值等经验分享
2017/01/09 Javascript
Angularjs为ng-click事件传递参数
2017/06/15 Javascript
JavaScript实现为事件句柄绑定监听函数的方法分析
2017/11/14 Javascript
实例详解vue.js浅度监听和深度监听及watch用法
2018/08/16 Javascript
微信小程序常用简易小函数总结
2019/02/01 Javascript
在React中写一个Animation组件为组件进入和离开加上动画/过度效果
2019/06/24 Javascript
[01:07:53]RNG vs VG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
python脚本内运行linux命令的方法
2015/07/02 Python
python构建自定义回调函数详解
2017/06/20 Python
Python 多核并行计算的示例代码
2017/11/07 Python
Python解决两个整数相除只得到整数部分的实例
2018/11/10 Python
利用anaconda作为python的依赖库管理方法
2019/08/13 Python
Django 自动生成api接口文档教程
2019/11/19 Python
Python爬取酷狗MP3音频的步骤
2021/02/26 Python
详解WebSocket跨域问题解决
2018/08/06 HTML / CSS
HTML5拍照和摄像机功能实战详解
2019/01/24 HTML / CSS
澳大利亚设计师服装在线:MISHA
2019/10/07 全球购物
英语专业个人求职信范文
2014/02/01 职场文书
大学生个人自荐信
2014/02/24 职场文书
马丁路德金演讲稿
2014/05/19 职场文书
法律专业求职信
2014/05/24 职场文书
2014学校领导四风问题对照检查材料思想汇报
2014/09/22 职场文书
中国文明网向国旗敬礼寄语大全
2014/09/27 职场文书
2015年度酒店客房部工作总结
2015/05/25 职场文书
2016国庆节67周年寄语
2015/12/07 职场文书
python通配符之glob模块的使用详解
2021/04/24 Python