如果 __name __ == '__main__' gunicorn 也会执行吗

does gunicorn also execute if __name __ == '__main__'

例如我有一个这样的命令 gunicorn --bind 0.0.0.0:8000 --workers = 3 --threads = 3 manage: app 然后 manage: appmanage.py 文件

中获取
app = create_app ()

if __name __ == '__ main__' 函数也是这样吗

if __name__ == '__main__':
     flask_thread (func = run)
     client.run (os.getenv ('TOKEN'))

在 运行 Gunicorn?

时执行

简答

不,gunicorn 导入您的 app 变量并调用它。 if 不会被执行。

更长的答案

__name__是一个特殊的变量。如果我们 运行 你的模块直接使用 python manage.py 那么这个值就是 __main__。因此,if 为真。

但是,如果我们 运行 你的模块由另一个(包括 gunicorn)使用 from manage import app 之类的东西导入,那么该值是 'app''manage.app'(你可以检查由你自己)。不用说,if 条件将为 False。