38 lines
1012 B
Python
38 lines
1012 B
Python
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'))
|