from flask import Flask, request, jsonify, redirect, url_for, render_template, session, make_response from flask_cors import CORS from flask_mail import Mail from flask_bcrypt import Bcrypt from flask_session import Session from dotenv import load_dotenv import os import logging import app_function # 引入新的文件 # 载入环境变量 load_dotenv() # 初始化 Flask 应用 app = Flask(__name__, static_url_path='', static_folder='.') CORS(app, resources={r"/*": {"origins": "*", "methods": "GET,POST,PUT,DELETE,OPTIONS"}}) bcrypt = Bcrypt(app) # 确保 SECRET_KEY 被设置 app.secret_key = os.getenv('SECRET_KEY', 'you_will_never_guess') app.config['SESSION_TYPE'] = 'filesystem' app.config['SESSION_PERMANENT'] = False Session(app) # 配置邮件 app.config.update( MAIL_SERVER='smtp.qq.com', # QQ smtp服务器 MAIL_PORT=465, # 端口 MAIL_USE_SSL=True, MAIL_USERNAME='3399560459@qq.com', # 发件邮箱 MAIL_PASSWORD='ubbgchcvkhnwcijj', # 授权码 MAIL_DEFAULT_SENDER=('SumKim_OFFICIAL', '3399560459@qq.com') ) mail = Mail(app) logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s') # 添加路由 app_function.add_admin_routes(app, mail, bcrypt) app_function.add_teacher_routes(app, mail, bcrypt) @app.before_request def before_request_func(): if request.method == 'OPTIONS': return app_function._build_cors_preflight_response() if __name__ == '__main__': app.run(debug=True, port=5005)