应用初始化两次。这是典型的行为吗?

时间:2018-03-28 00:22:17

标签: python flask socket.io

我目前正在测试套接字io应用,并且我注意到异常行为。 在我的init python脚本中,我声明了一个实例化烧瓶对象并通过socketIO实例(全局)初始化它的函数,即(假设所有这些文件都在同一目录范围内):

#/test_app/configs/__init__.py

__socketIO__ = SocketIO()
def create_app(address, port):
    app = Flask(__name__, static_url_path='')
    app.config.from_pyfile('config.py')
    __socketIO__.init_app(app)

    return app

在另一个python脚本中:

#/test_app/run_app.py

from configs import create_app
from configs import __socketIO__ as launch_socket

ip_address = '0, 0, 0, 0'
port = 5000

APP = create_app(ip_address, port)

if __name__ == '__main__':
    print 'launching....'
    launch_socket.run(APP, debug=True, host=ip_addres, port=port)

鉴于此,如果我运行run_app.py,'启动...'会打印两次。 这种行为是典型的吗?虽然我仍然在学习socket.io的方式,所以也许我错过了一些观点。它初始化两次似乎很奇怪。如果这种行为不必要或有害,是否有办法规避这种行为?

谢谢!

1 个答案:

答案 0 :(得分:2)

在调试模式下运行时,这是正常现象。 Flask启动两个流程,一个用于查看更改代码,另一个用于实际烧瓶流程。