Version 0.1.1 rise to flask app factory
This commit is contained in:
59
Html/apps/extensions.py
Normal file
59
Html/apps/extensions.py
Normal file
@@ -0,0 +1,59 @@
|
||||
import os, sys
|
||||
from flask_sqlalchemy import SQLAlchemy
|
||||
from flask_socketio import SocketIO
|
||||
from flask_cors import CORS
|
||||
from db.user_list import UserList
|
||||
from db.course_list import CourseList
|
||||
from .services.my_function import MyFunction
|
||||
|
||||
db = SQLAlchemy()
|
||||
|
||||
socketio = SocketIO(cors_allowed_origins="*") # 不直接传 app
|
||||
cors = CORS()
|
||||
# ===== 你的全局对象 =====
|
||||
# Backboard
|
||||
from backboardManager import BackBoardManager # 你已有的类
|
||||
backboard_manager = BackBoardManager()
|
||||
|
||||
# 用户映射(全局内存结构)
|
||||
userid_recorder = {} # 你代码里有使用
|
||||
users_list = UserList()
|
||||
uuid2username = {} # 你的映射,或换成数据库访问层
|
||||
username2uuid = {}
|
||||
course_list = CourseList()
|
||||
user_id2UserClass = {}
|
||||
|
||||
from AlgoriAgent.projects.algoriAgent.agent_manager import AgentManager
|
||||
agent_manager = AgentManager()
|
||||
def init_extensions(app):
|
||||
db.init_app(app)
|
||||
# 第三方
|
||||
socketio.init_app(
|
||||
app,
|
||||
cors_allowed_origins='*',#app.config["VSCODE_WEB_URL"],
|
||||
ping_timeout=app.config["SOCKETIO_PING_TIMEOUT"],
|
||||
ping_interval=app.config["SOCKETIO_PING_INTERVAL"],
|
||||
)
|
||||
cors.init_app(
|
||||
app,
|
||||
resources={r"/*": {"origins": app.config["VSCODE_WEB_URL"]}},
|
||||
supports_credentials=True,
|
||||
)
|
||||
|
||||
# 把自定义对象挂到 app.extensions,供各处通过 current_app 访问
|
||||
app.extensions["users_list"] = users_list
|
||||
app.extensions["course_list"] = course_list
|
||||
|
||||
app.extensions["backboard_manager"] = backboard_manager
|
||||
app.extensions["uuid2username"] = uuid2username
|
||||
app.extensions["username2uuid"] = username2uuid
|
||||
app.extensions["userid_recorder"] = userid_recorder
|
||||
app.extensions["user_id2UserClass"] = user_id2UserClass
|
||||
app.extensions["agent_manager"] = agent_manager
|
||||
app.extensions["my_function"] = MyFunction()
|
||||
def register_namespaces(app):
|
||||
"""把所有 Socket.IO namespaces 注册到 socketio"""
|
||||
# 延迟导入以避免循环
|
||||
from .sockets.namespaces import VSCodeNamespace, AgentNamespace
|
||||
socketio.on_namespace(VSCodeNamespace("/vscode"))
|
||||
socketio.on_namespace(AgentNamespace("/agent"))
|
||||
Reference in New Issue
Block a user