flask - 信号
pip3 install blinker
# 请求到来前执行 request_started = _signals.signal('request-started') ' # 请求结束后执行 request_finished = _signals.signal('request-finished') # 模板渲染前执行 before_render_template = _signals.signal('before-render-template') # 模板渲染后执行 template_rendered = _signals.signal('template-rendered') # 请求执行出现异常时执行 got_request_exception = _signals.signal('got-request-exception') # 请求执行完毕后自动执行(无论成功与否) request_tearing_down = _signals.signal('request-tearing-down')
---------------------------离线脚本-------------------
# 请求上下文执行完毕后自动执行(无论成功与否) appcontext_tearing_down = _signals.signal('appcontext-tearing-down'
# 请求上下文push时执行 appcontext_pushed = _signals.signal('appcontext-pushed') # 请求上下文pop时执行 appcontext_popped = _signals.signal('appcontext-popped')
# 调用flask在其中添加数据时,自动触发 message_flashed = _signals.signal('message-flashed')
from flask import Flask from flask import signals app = Flask(__name__) def x1(arg): print(1) print(arg) signals.request_started.connect(x1) @app.before_request def x2(): print(2) @app.route("/") def index(): print(3) return "ok" if __name__ == '__main__': app.run()

信号无返回值,可以做访问ip限制
http://www.cnblogs.com/wupeiqi/articles/8249576.html

浙公网安备 33010602011771号