python - 在 flask/gunicorn 中初始化应用程序的位置

标签 python web-services flask gunicorn

我正在使用 Flask/Gunicorn 运行 Web 应用程序并且对生命周期管理有疑问。我在使用 servlet 的 Java 世界中有更多经验。

我正在为服务创建一个 Restful 接口(interface)。该服务始终运行在服务器上,并与一组子服务器进行通信和控制。在 Java 中,我的服务将通过监听器和 servlet 初始化方法创建和初始化(例如,传统上在 main() 中找到的设置)。

等效的设置和配置在 Flask 中的什么地方?我正在考虑创建数据库连接池、向子服务器发送问候消息、将持久化系统状态重置为初始值等任务。

这会出现在 Flask 的 before_first_request 方法中吗?

根据@Pyrce 的评论,我认为我可以创建一个 main.py:

app = Flask(your_app_name)

#initialization code goes here

然后运行:

>gunicorn main:app

最佳答案

您仍然可以使用相同的 main() 方法范例。请参阅下面的入门代码:

app = Flask(your_app_name) # Needs defining at file global scope for thread-local sharing

def setup_app(app):
   # All your initialization code
setup_app(app)

if __name__ == '__main__':
    app.run(host=my_dev_host, port=my_dev_port, etc='...')

before_first_request 方法也可以处理所有这些项目。但是您会在第一次请求时而不是在服务器启动时延迟设置。

关于python - 在 flask/gunicorn 中初始化应用程序的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22260127/

相关文章:

python-requests,找到正确的编码

java - 如何读取 xs :any response using CXF Generated Client?

python-3.x - Flask sqlalchemy 和 marshmallow 的多对多关系

python - 如何通过Von Mises分布求周期间隔和周期均值?

python - 在 bash 中生成多个 python 脚本

python - 将 Dataframe 转换为 dict 列表太慢

web-services - Flex 3 获取网络服务调用以等待结果

c# - 如何使现有的 C# dll 可用作 Web 服务

python - 如何从 Flask 应用程序中的 MySQL 查询返回数据?

Python/flask汇总算法错误