from flask import Blueprint, render_template, session, redirect, url_for, flash from app.models.user import User user_bp = Blueprint('user', __name__, url_prefix='/user') def login_required(f): """登录验证装饰器""" def decorated_function(*args, **kwargs): if 'user_id' not in session: flash('请先登录', 'warning') return redirect(url_for('auth.login')) return f(*args, **kwargs) decorated_function.__name__ = f.__name__ return decorated_function @user_bp.route('/profile') @login_required def profile(): """用户个人中心""" user = User.query.get(session['user_id']) if not user: session.clear() flash('用户不存在,请重新登录', 'error') return redirect(url_for('auth.login')) return render_template('user/profile.html', user=user) @user_bp.route('/orders') @login_required def orders(): """用户订单 - 重定向到订单列表""" return redirect(url_for('order.list'))