V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
monetto
V2EX  ›  Python

flask 类似于 Spring ApplicationListener 的逻辑吗?

  •  
  •   monetto · 2019-10-28 22:58:21 +08:00 · 2601 次点击
    这是一个创建于 1633 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题,想在 Flask 应用启动完成后进行一些初始化逻辑,Spring 可以使用 ApplicationListener,但是 Flask 没有查到,有大佬知道的吗?

    6 条回复    2019-10-29 11:02:05 +08:00
    ClericPy
        1
    ClericPy  
       2019-10-29 01:51:17 +08:00
    没见过... 只知道有个第一次请求前的回调 before_app_first_request -> before_first_request_funcs. 反正 signals 里没看到
    Sanic 和 starlette 那些协程库倒是可以添加 after_server_start 事件绑定...
    什么任务不能初始化 App 的时候直接做好准备, 再去启动...
    monetto
        2
    monetto  
    OP
       2019-10-29 09:01:59 +08:00
    @ClericPy 比如在 Flask 应用启动前需要缓存进 Redis 一些数据,这一步骤希望在 Flask 启动完成后执行
    cz5424
        3
    cz5424  
       2019-10-29 09:06:11 +08:00 via iPhone
    @monetto 使用工厂模式,注册蓝图之后去初始化你要的东西
    ClericPy
        4
    ClericPy  
       2019-10-29 10:34:35 +08:00
    @monetto 看这个意思是... flask 初始化 app 还不够, 还要启动, 并且用户发来请求之前, 那 before_app_first_request 然后自己 Requests 自己不够么, 写个能阻塞的就够了吧. 这还不行只能去 flask 源码里找钩子了... 你要的 startup event listener 我至少在 stackoverflow 和 flask 官方 Github 都没看到
    monetto
        5
    monetto  
    OP
       2019-10-29 11:01:50 +08:00
    @ClericPy 好的(#捂脸)
    monetto
        6
    monetto  
    OP
       2019-10-29 11:02:05 +08:00
    @cz5424 我看看去,3Q
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3196 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 13:47 · PVG 21:47 · LAX 06:47 · JFK 09:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.