У меня есть файл app.py, где я инициализирую свое приложение.У меня есть другой файл (run.py), откуда я запускаю сервер Flask.Все работает со стандартным приложением колбы.Однако я пытаюсь интегрировать флешку-сокето, и она продолжает давать сбой с разными ошибками в зависимости от того, как я пытаюсь инициализировать приложение.
Я пробовал следующие способы инициализации флеш-сокета:
socketio = SocketIO(app.config.from_object(app_config[env_name]))
socketio = SocketIO(app, **app.config[env_name])
socketio = SocketIO(**app.config[env_name])
Вот соответствующий код из моего файла app.py.
def create_app(env_name):
"""
Create app
"""
# app initiliazation
app = Flask(__name__)
app.config.from_object(app_config[env_name])
async_mode = None
# initializing bcrypt and db
bcrypt.init_app(app)
db.init_app(app)
socketio = SocketIO(app.config.from_object(app_config[env_name]))
return socketio
Мой файл run.py выглядит следующим образом:
rom src.app import create_app
load_dotenv(find_dotenv())
env_name = os.getenv('FLASK_ENV')
app = create_app(env_name)
if __name__ == '__main__':
port = os.getenv('PORT')
# run app
app.run(app, host='0.0.0.0', port=port)
Вы заметите, что я импортирую изфайл config.py.Вот где мои переменные окружения для (dev, test, prod).Каждая среда - это свой класс.Например:
class Development(object):
"""
Development environment configuration
"""
DEBUG = True
TESTING = False
SQLALCHEMY_TRACK_MODIFICATIONS=False
JWT_SECRET_KEY = os.getenv('JWT_SECRET_KEY')
SQLALCHEMY_DATABASE_URI = os.getenv('DATABASE_URL')
ALLOWED_EXTENSIONS = set(['png', 'jpg', 'jpeg', 'gif'])
UPLOADED_FILES_DEST = os.getenv('UPLOADED_FILES_DEST')
Как вы можете видеть, большинство из этих значений задаются в переменной среды, поскольку не рекомендуется помещать такую чувствительную информацию в репозиторий.
Я бы хотелчтобы иметь возможность инициализировать колбу, чтобы я мог настроить комнаты, где пользователи могут обмениваться информацией о местоположении.
Заранее спасибо.