请求钩子

1.Flask中请求钩子的理解和应用
before_first_request: 在处理第一个请求前运行
before_request:在每次请求前运行
after_request:如果没有未处理的异常,在每次请求后运行。
teardown_request:即使有未处理的异常抛出,在每次请求后运行。

2.具体代码
class AppHolder(object):
def init(self, app, db):
“”“init before request”""
self.app = app # flask对象
self.db = db # 数据库连接
self.app.before_request(self.before_request) self.app.teardown_request(AppHolder.teardown_request)

def before_request(self):  # 每个实例对象有自己一份
    """handle before request"""
    session = self.db.make_session()
    g.pg_db = session()
    g.es = EsBase.create_es_client()


@staticmethod   # 每个对象共享
def teardown_request(exception):
    """handle after request"""

    db_session = g.get("pg_db")
    if db_session:
        db_session.close()
    if exception is not None:
        logging.warn("[{0} {1}] an exception occurred to this request: {2}"
                     .format("app.py", "WingsAppHolder", exception), exc_info=1)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值