""" 前台友情链接页视图(无需登录)。 URL: - GET /site/friend 按分组聚合展示所有启用友情链接 注:不是 /site/friends(避免与系统内部 hyperlink 对齐) """ from collections import OrderedDict from flask import Blueprint, render_template from applications.models import Friend bp = Blueprint('public_friend', __name__, url_prefix='/site') @bp.get('/friend') def friend_index(): """ 公开友情链接页:按 category 分组聚合展示 """ items = ( Friend.query .filter(Friend.enable == 1) .order_by(Friend.category.asc(), Friend.sort.asc(), Friend.id.asc()) .all() ) groups = OrderedDict() for item in items: if not item.url: continue groups.setdefault(item.category or '推荐友链', []).append(item.to_dict()) total = sum(len(g) for g in groups.values()) return render_template( 'public/friend.html', groups=groups, total=total, site_name='旺珂 · 导航', )