from quart import Quart, render_template, request, jsonify,send_from_directory,session,redirect, url_for from quart_session import Session from .main import main from .API import api from functools import wraps from quart_sqlalchemy import SQLAlchemy from flask_migrate import Migrate #app.config['SECRET_KEY'] = 'mysecret' #密钥 --需要放配置文件 #socketio = SocketIO(app) def create_app(): app = Quart(__name__) #相关配置--设置各种配置选项,这些选项会在整个应用程序中被访问和使用。 app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app.db' app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False app.config['SECRET_KEY'] = 'zfxxkj_2024_!@#' app.config['SESSION_TYPE'] = 'redis' # session类型 app.config['SESSION_FILE_DIR'] = './sessions' # session保存路径 app.config['SESSION_PERMANENT'] = True # 如果设置为True,则关闭浏览器session就失效。 app.config['SESSION_USE_SIGNER'] = False # 是否对发送到浏览器上session的cookie值进行加密 Session(app) #ORM数据库管理 # db = SQLAlchemy() # migrate = Migrate() # db.init_app(app) # migrate.init_app(app, db) # 创建对象,使用它来将ORM模型映射到数据库 -- 效果是及时更新数据的修改到文档? # 注册main app.register_blueprint(main) #注册API模块 app.register_blueprint(api,url_prefix = '/api') return app def login_required(f): @wraps(f) async def decorated_function(*args, **kwargs): if 'user' not in session: return redirect(url_for('main.login')) return await f(*args, **kwargs) return decorated_function