如何从应用代码访问Gunicorn的配置参数?

1 投票
2 回答
1740 浏览
提问于 2025-04-16 07:19

我有一个用 gunicorn 运行的 Werkzeug 应用程序。我的脚本目录结构大概是这样的:

prj/
    __init__.py
    application.py   :which has a WSGI application object "wsgi_app".
    settings_app.py  :settings for werkzeug applicaiton code.

然后,我通常会用下面的命令行来启动这个 Werkzeug 应用程序,使用 gunicorn。

$ gunicorn --worker-class=gevent --bind=0.0.0.0:80 --workers=5 --daemon [--debug] prj.application:wsgi_app

当我使用 "--debug" 这个选项时,gunicorn 会开启调试模式。因为 gunicorn 的 "debug" 变量只影响 gunicorn 自身的行为,所以我还在 "settings_app.py" 文件里设置了 "DEBUG" 变量,以改变应用程序的行为(比如日志级别、模板目录等等)。我觉得这样有点重复。而且,命令行中的 "debug" 选项不能覆盖后面的 "DEBUG" 变量。

如果我能在应用程序代码中引用 gunicorn 的配置变量,就可以省去这些重复的变量设置。

请问,如何在应用程序代码中访问 gunicorn 的配置变量?

谢谢。

2 个回答

1

你可以在Gunicorn解析参数之前使用optparse。

1

现在没有直接的方法可以把Gunicorn的配置参数导入到你的应用代码里。

不过,你可以使用一些配置钩子,自动在你的应用代码中设置调试变量。

撰写回答