f103148ebf
基于 Flask + MySQL + Bootstrap 5 的全栈个人资料库管理系统。 主要功能: - 管理员/普通用户双角色权限体系,全站登录保护 - 资源管理:文本、图片、音频、视频四类资源 - 三种添加方式:本地上传(拖拽)、URL 后台下载、磁力下载(aria2c) - 在线预览:文本、图片、HTML5 音视频播放器 - 安全:bcrypt 加盐密码哈希、CSRF 防护、SQLAlchemy ORM 防注入 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
27 lines
805 B
Python
27 lines
805 B
Python
from flask import Blueprint, redirect, url_for, render_template
|
|
from flask_login import login_required, current_user
|
|
|
|
from app.models.resource import Resource
|
|
from app.models.user import User
|
|
|
|
main_bp = Blueprint('main', __name__)
|
|
|
|
|
|
@main_bp.route('/')
|
|
@login_required
|
|
def index():
|
|
if current_user.is_admin:
|
|
return redirect(url_for('admin.dashboard'))
|
|
return redirect(url_for('resources.list_resources'))
|
|
|
|
|
|
@main_bp.route('/profile')
|
|
@login_required
|
|
def profile():
|
|
total = Resource.query.filter_by(user_id=current_user.id).count()
|
|
by_type = {}
|
|
for t in ('text', 'image', 'audio', 'video'):
|
|
by_type[t] = Resource.query.filter_by(
|
|
user_id=current_user.id, resource_type=t).count()
|
|
return render_template('user/profile.html', total=total, by_type=by_type)
|