在默认的Flask应用中,PyCharm生成以下代码:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
if __name__ == '__main__':
app.run()
在我关注的几乎所有教程中(现在,socketio),它都希望我在if语句内添加初始化代码(像这样):
if __name__ == '__main__':
app = socketio.Middleware(sio, app)
eventlet.wsgi.server(eventlet.listen(('', 8000)), app)
问题
__name__
似乎总是等于app
,这意味着__name__
不等于__main__
,因此不会输入if语句。 if语句的目的是什么?是PyCharm特定的,还是某种方式在生产中启动应用程序?如果是这样,生产如何自动将__name__
设置为__main__
?
试图弄清楚这些变量来自何处,以便找出正确的代码位置(即:socketio)。