11.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_rocessor():
    return {{‘current_user‘:‘xxx‘}}

 errorhandler

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

  • 要返回状态码
  • 必须写一个参数,来接受错误的信息

使用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

原文地址:https://www.cnblogs.com/derek1184405959/p/9114156.html

时间: 2024-08-30 15:23:25

11.Flask钩子函数的相关文章

flask 钩子函数

说明: before_request函数,就是一个装饰器,他可以把需要设置为钩子函数的代码放到视图函数执行之前执行 示例: from flask import Flask,url_for,redirect,render_template,request app = Flask(__name__) @app.route('/') def index(): print ('index') return 'index' @app.before_request def mybefore_request(

flask 钩子函数errorhandler

一.errorhandler  接收状态吗,可以自定义返回这种状态码的响应的处理办法,如果发生一些异常的时候,比如404.500那么如果想要优雅的处理这些错误,就可以使用errorhandler 注意点: *在errorhandler装饰钩子函数下,要返回响应的状态码 *在errorhandler装饰的钩子函数中,必须要写一个参数,来接收错误的信息,如果没有参数,就会直接报错 *使用flask,abort 可以手动的抛出响应的错误,比如开发者在发现参数不正确的时候可以自己手动抛出一个404错误

flask钩子函数

@app.context_processor def context_processor(): return {"current_user":"zhiliao"}#这里必须有返回值,而且返回值必须是字典 #下面错误的写法 @app.context_processor def context_processor_error(): if hasattr(g,'user'): return {"current_user":g.user}#不能这样写,函

Flask入门flask-script 蓝本 钩子函数(三)

1 flask-script扩展库 概念: 是一个flask终端运行的解析器 ,因为项目完成以后,代码改动会有风险,所以借助终端完成不同启动项的配置 安装 pip3 install flask-script 使用 from flask_script import Manager #导入 manager = Manager(app) #初始化flask运行的解析器 manager.run() #运行 执行程序需要在启动项输入命令 python3 当前启动文件名.py runserver 可选参数

flask-get/post/线程隔离g对象/钩子函数

get: 通过request.args来获取 from flask import Flask, request @app.route('/search/') def search(): # 获得参数字典 args = request.args print(args) # ImmutableMultiDict([('q', 'hello')]) print(args.get('q')) # hello return 'search' post: 1 from flask import Flask,

用Delphi实现Windows的鼠标钩子函数

Delphi是基于PASCAL语言的Windows编程工具,功能十分强大.然而在Delphi的帮助文件中,对Windows API函数的说明沿袭了 VC 的格式,和VC一样,对很多API函数的用法没有举例子详细说明,对一些深入系统内部的API函数更是语焉不详,给编程者带来不便.笔者仅就在Windows编程中鼠标钩子函数(HOOK)的实现,举例作一说明.   鼠标钩子函数也可叫做鼠标消息过滤器,是一种回调(CALLBACK)函数,归系统调用.如果用SetWindowsHook或SetWindows

回调函数以及钩子函数的概念

钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统.每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权.这时钩子函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递.对每种类型的钩子由系统来维护一个钩子链,最近安装的钩子放在链的开始,而最先安装的钩子放在最后,也就是后加入的先获得控制权.要实现Win32的系统钩子,必须调用SDK中的API函数SetWindowsHookEx来安装这个钩子函数,这个函数的原型是

HOOK钩子 - 钩子函数说明

翻译参考自MaybeHelios的blog: http://blog.csdn.net/maybehelios/ 通过SetWindowsHookEx方法安装钩子,该函数指定处理拦截消息的钩子函数(回调函数),可在钩子函数中自定义消息的处理,可修改消息或屏蔽消息.钩子函数的格式是固定为:LRESULT CALLBACK CallBackProc(                Int nCode,          WPARAM wParam,          LPARAM lParam);

10.PHP内核探索:Apache运行与钩子函数

Apache是目前世界上使用最为广泛的一种Web Server,它以跨平台.高效和稳定而闻名.按照去年官方统计的数据,Apache服务器的装机量占该市场60%以上的份额.尤其是在 X(Unix/Linux)平台上,Apache是最常见的选择.其它的Web Server产品,比如IIS,只能运行在Windows平台上,是基于微软.Net架构技术的不二选择. Apache并不是没有缺点,它最为诟病的一点就是变得越来越重,被普遍认为是重量级的WebServer.所以,近年来又涌现出了很多轻量级的替 代