from flask import Flask from flask_cors import CORS from config import config from extensions import db, jwt, mail import os # 初始化扩展 # jwt = JWTManager() # Moved to extensions.py # mail = Mail() # Moved to extensions.py def create_app(config_name='default'): """应用工厂函数""" app = Flask(__name__) # 加载配置 app.config.from_object(config[config_name]) # 初始化扩展 db.init_app(app) jwt.init_app(app) mail.init_app(app) CORS(app, resources={ r"/api/*": {"origins": "*"}, r"/v1/*": {"origins": "*"} }) # 注册蓝图 from routes.auth import auth_bp from routes.user import user_bp from routes.order import order_bp from routes.api_service import api_bp from routes.admin import admin_bp from routes.apikey import apikey_bp from routes.v1_api import v1_bp app.register_blueprint(auth_bp, url_prefix='/api/auth') app.register_blueprint(user_bp, url_prefix='/api/user') app.register_blueprint(order_bp, url_prefix='/api/order') app.register_blueprint(api_bp, url_prefix='/api/service') app.register_blueprint(admin_bp, url_prefix='/api/admin') app.register_blueprint(apikey_bp, url_prefix='/api/apikey') app.register_blueprint(v1_bp, url_prefix='/v1') # 创建数据库表 with app.app_context(): db.create_all() # 创建默认管理员账户 from models import User admin = User.query.filter_by(email='admin@nba.com').first() if not admin: admin = User( email='admin@nba.com', username='Admin', is_admin=True, is_active=True ) admin.set_password('admin123') db.session.add(admin) db.session.commit() print('默认管理员账户已创建: admin@nba.com / admin123') @app.route('/') def index(): return {'message': 'Nano Banana API Transfer Service', 'version': '1.0.0'} @app.route('/health') def health(): return {'status': 'healthy'} return app if __name__ == '__main__': app = create_app(os.getenv('FLASK_ENV', 'development')) app.run(host='0.0.0.0', port=5000, debug=True)