2024-08-29 02:06:09 +08:00

51 lines
1.5 KiB
Python

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=os.getenv('EMAIL_HOST'),
MAIL_PORT=os.getenv('EMAIL_PORT'),
MAIL_USE_SSL=True,
MAIL_USERNAME=os.getenv('EMAIL_USERNAME'),
MAIL_PASSWORD=os.getenv('EMAIL_PASSWORD'),
MAIL_DEFAULT_SENDER=(os.getenv('EMAIL_FROM_NAME'), os.getenv('EMAIL_FROM'))
)
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)