【问题标题】:Introducing flask_socketio to work with a simple already made flask application引入 flask_socketio 来处理一个简单的烧瓶应用程序
【发布时间】:2021-07-14 12:22:26
【问题描述】:

我是 Flask 和 flask-socketio 的新手。

我首先从Flask官方docs制作了教程应用。

我关注this 使用flask-socketio 制作一个简单的聊天应用程序。

我需要的是 Flask 教程中的身份验证系统和 SocketIO 教程中的简单聊天功能。

Flask 教程在__init__.pycreate_app 方法中运行Flask 应用程序。

__init__.py

def create_app(test_config=None):
    # create and configure the app
    app = Flask(__name__, instance_relative_config=True)
    app.config.from_mapping(
        SECRET_KEY='dev',
        DATABASE=os.path.join(app.instance_path, 'flaskr.sqlite'),
    )
    # ...
    
    return app

SocketiIO 教程只有一个运行 SocketIO 应用程序的main.py 文件。

ma​​in.py

app = Flask(__name__)
app.config['SECRET_KEY'] = 'vnkdjnfjknfl1232#'
socketio = SocketIO(app)


@app.route('/')
def sessions():
    return render_template('session.html')

# ...

if __name__ == '__main__':
    socketio.run(app, debug=True)

我已经阅读了很多关于将 flask-socketio 与已经制作的 Flask 应用程序集成的问题,但他们都尝试使用 main.py 文件进行集成,您可以将 socketio.run() 方法放在 @987654333 中运行@。

是否可以在同一个应用程序中同时运行 http 服务器和套接字服务器,从 create_app 方法初始化应用程序?

【问题讨论】:

    标签: python flask socket.io


    【解决方案1】:

    对于遇到这个问题的人,包的创建者教你如何处理这个问题here

    socketio = SocketIO()
    
    def create_app(test_config=None):
        # create and configure the app
        app = Flask(__name__, instance_relative_config=True)
        app.config.from_mapping(
            SECRET_KEY='dev',
            DATABASE=os.path.join(app.instance_path, 'flaskr.sqlite'),
        )
        # ...
    
        socketio.init_app(app)
    
        return app
    

    这只是创建一个全局 SocketIO 对象并在 creat_app 之后开始的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-03
      • 2021-05-18
      • 2015-09-07
      • 2021-03-31
      • 1970-01-01
      • 2016-03-06
      相关资源
      最近更新 更多