Can't run Flask-SocketIO on multiple files layout

22 Views Asked by At

I can't figure out how to run socketio instead of app. I solved the problem in a ptoject, which was using Blueprint scheme:

from app import create_app

app = create_app().socketio

But now I have another files configuration.

Project layout:

-
|- app
|   |- __init__.py
|   |- routes.py
|- venv
|- my_app.py

routes.py

# ...
from app import app, socketio
# ...

init.py

from flask import Flask
from flask_socketio import SocketIO

app = Flask(__name__)

socketio = SocketIO(app)

from app import routes

-OR-

from flask import Flask
from flask_socketio import SocketIO

app = Flask(__name__)

socketio = SocketIO()
socketio.init_app(app)

with app.app_context():
    app.socketio = socketio

from app import routes

my_app.py

from app import app

app = app.socketio

-OR-

from app import socketio as app

-OR-

from app import app, socketio

app = socketio

terminal

flask --app my_app run
flask --app my_app:socketio run

But answers to my attemptions were like these:

Error: Failed to find Flask application or factory in module 'my_app'. 
Error: A valid Flask application was not obtained from 'my_app:socketio'.

How can I socketio.run() from terminal? Thanka.

0

There are 0 best solutions below