zoukankan      html  css  js  c++  java
  • 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('在视图函数执行之前执行')

    after_request

    装饰的视图函数有response参数,return response

    视图函数执行之后,请求返回客户端之前。执行!

    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
  • 相关阅读:
    Keil MDK5 硬件仿真之查看变量的值(内附变量值不随程序的运行而刷新的解决办法)
    15 Q点稳定的放大电路和基本共集放大电路
    13 H参数等效模型
    12 放大电路的分析方法
    文件处理
    基本数据类型及内置方法
    for循环及字符串操作
    while循环
    用户交互、运算符
    变量与基本数据类型
  • 原文地址:https://www.cnblogs.com/xiao-xue-di/p/10063000.html
Copyright © 2011-2022 走看看