from flask import Flask, request, session from flask_sqlalchemy import SQLAlchemy from flask_migrate import Migrate from flask_login import LoginManager from flask_babel import Babel from app.config import Config import os db = SQLAlchemy() migrate = Migrate() login_manager = LoginManager() login_manager.login_view = 'auth.login' babel = Babel() def create_app(config_class=Config): app = Flask(__name__, template_folder='../templates', static_folder='../static') app.config.from_object(config_class) db.init_app(app) migrate.init_app(app, db) login_manager.init_app(app) babel.init_app(app) from app.routes import main_bp, auth_bp app.register_blueprint(main_bp) app.register_blueprint(auth_bp, url_prefix='/auth') @babel.localeselector def get_locale(): # 如果用户已经选择了语言,从session中获取 if 'language' in session: return session['language'] # 否则尝试匹配请求的语言 return request.accept_languages.best_match(app.config['LANGUAGES']) return app