如果 __name __ == '__main__' gunicorn 也会执行吗
does gunicorn also execute if __name __ == '__main__'
例如我有一个这样的命令 gunicorn --bind 0.0.0.0:8000 --workers = 3 --threads = 3 manage: app
然后 manage: app
从 manage.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。
例如我有一个这样的命令 gunicorn --bind 0.0.0.0:8000 --workers = 3 --threads = 3 manage: app
然后 manage: app
从 manage.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。