#main.py
from flask import Flask
app = Flask(__name__)
if __name__ == '__main__':
print("before app run")
app.run() # , threaded=True host='0.0.0.0', debug=True, port=5000
Run Code Online (Sandbox Code Playgroud)
运行 gunicorn 如下:
gunicorn -b 0.0.0.0:8000 --preload main:app
Run Code Online (Sandbox Code Playgroud)
结果不会打印“before app unn”。我怎样才能运行打印代码?如果我不想在外面打印if __name__ == '__main__'
Gunicorn 不是运行该文件,而是importing 它。这意味着__name__ != "__main__"您的代码永远不会运行。
app.run()导入文件后,Gunicorn 会手动调用自身。
解决方案是确保您的代码在导入时运行:
> cat main.py
from flask import Flask
app = Flask(__name__)
print "before main stanza"
if __name__ == "__main__":
print "in main stanza"
app.run()
Run Code Online (Sandbox Code Playgroud)
然后运行应用程序:
> gunicorn -b 0.0.0.0:8000 --preload main:app
before main stanza
[2017-06-07 08:33:15 +0100] [8865] [INFO] Starting gunicorn 19.7.1
[2017-06-07 08:33:15 +0100] [8865] [INFO] Listening at: http://0.0.0.0:8000 (8865)
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1919 次 |
| 最近记录: |