"""作者管理路由""" from flask import render_template, redirect, url_for, request, flash from app.routes.admin import admin_bp, login_required from app.services import AuthorService @admin_bp.route('/authors') @login_required def authors(): """作者列表""" authors = AuthorService.get_all() return render_template('admin/authors.html', authors=authors) @admin_bp.route('/authors/create', methods=['GET', 'POST']) @login_required def author_create(): """创建作者""" if request.method == 'POST': name = request.form.get('name') avatar = request.form.get('avatar') bio = request.form.get('bio') website = request.form.get('website') AuthorService.create(name=name, avatar=avatar, bio=bio, website=website) flash('作者创建成功', 'success') return redirect(url_for('admin.authors')) return render_template('admin/author_form.html', author=None) @admin_bp.route('/authors//edit', methods=['GET', 'POST']) @login_required def author_edit(author_id): """编辑作者""" author = AuthorService.get_by_id(author_id) if not author: flash('作者不存在', 'danger') return redirect(url_for('admin.authors')) if request.method == 'POST': AuthorService.update(author_id, name=request.form.get('name'), avatar=request.form.get('avatar'), bio=request.form.get('bio'), website=request.form.get('website') ) flash('作者更新成功', 'success') return redirect(url_for('admin.authors')) return render_template('admin/author_form.html', author=author) @admin_bp.route('/authors//delete', methods=['POST']) @login_required def author_delete(author_id): """删除作者""" if AuthorService.delete(author_id): flash('作者已删除', 'success') else: flash('删除失败', 'danger') return redirect(url_for('admin.authors'))