如何通过命令行Flask run启动Flask和Flask SocketIO
我从一个定义了多个Web服务的应用程序开始。我可以通过命令行上的如何通过命令行Flask run启动Flask和Flask SocketIO,flask,Flask,我从一个定义了多个Web服务的应用程序开始。我可以通过命令行上的flask run启动应用程序。之后,我集成了flask sckoetio(即,我添加了flask_socketio import socketio、emit和socketio=socketio(应用程序))中的行),现在我无法再通过flask run启动服务器了 from flask import Flask, request, abort from flask_socketio import SocketIO, emit a
flask run
启动应用程序。之后,我集成了flask sckoetio(即,我添加了flask_socketio import socketio、emit和socketio=socketio(应用程序))中的行),现在我无法再通过flask run启动服务器了
from flask import Flask, request, abort
from flask_socketio import SocketIO, emit
app = Flask(__name__)
socketio = SocketIO(app)
@app.route('/do_sth', methods=['POST'])
def do_sth():
return ""
我在控制台上收到以下消息:
* Serving Flask-SocketIO app "webservices.py"
* Forcing debug mode off
WebSocket transport not available. Install eventlet or gevent and gevent-websocket for improved perform
ance.
c:\program files\python36\lib\site-packages\flask_socketio\__init__.py:496: Warning: Silently ignoring
app.run() because the application is run from the flask command line executable. Consider putting app.
run() behind an if __name__ == "__main__" guard to silence this warning.
use_reloader=use_reloader, **kwargs)
因此,我将代码更新为:
from flask import Flask, request, abort
from flask_socketio import SocketIO, emit
app = Flask(__name__)
socketio = SocketIO(app)
@app.route('/do_sth', methods=['POST'])
def do_sth():
return ""
if __name__ == '__main__':
socketio.run(app)
但我仍然收到相同的错误消息,服务器没有启动。但是,如果我只是执行脚本,一切都会正常工作。但是为什么不再可以运行烧瓶?是否安装了或,错误消息中提到了
它们也列在中的要求下。
试着先安装它们
安装其中一个之后,您只需使用flask run
启动应用程序。之所以发生这种情况,是因为变量\uuuuuu name\uuuuuu
仅在使用类似python file.py的命令直接调用文件时,才等于“\uuu main\uuuuu”
。但您的文件已导入,并且他的\uuu name\uu
变量被设置为导入它们的模块的名称
解决方案:
只要删除字符串if\uuuuuu name\uuuuuu==“\uuuuuu main\uuuuuuu”: