- 将 routes/admin.py (672行) 拆分为 routes/admin/ 包 - 按功能模块拆分:auth, dashboard, articles, categories, tags, settings, stats, upload, authors - 端口从 16012 改为 16013 - 初始化数据库和管理员账户
32 lines
984 B
Python
32 lines
984 B
Python
"""认证相关路由:登录/登出"""
|
|
from flask import render_template, redirect, url_for, request, flash, session
|
|
from app.routes.admin import admin_bp
|
|
from app.services import AdminService
|
|
|
|
|
|
@admin_bp.route('/login', methods=['GET', 'POST'])
|
|
def login():
|
|
"""登录页面"""
|
|
if request.method == 'POST':
|
|
username = request.form.get('username')
|
|
password = request.form.get('password')
|
|
|
|
admin = AdminService.authenticate(username, password)
|
|
if admin:
|
|
session['admin_id'] = admin.id
|
|
session['admin_username'] = admin.username
|
|
flash('登录成功', 'success')
|
|
return redirect(url_for('admin.dashboard'))
|
|
else:
|
|
flash('用户名或密码错误', 'danger')
|
|
|
|
return render_template('admin/login.html')
|
|
|
|
|
|
@admin_bp.route('/logout')
|
|
def logout():
|
|
"""登出"""
|
|
session.clear()
|
|
flash('已退出登录', 'info')
|
|
return redirect(url_for('admin.login'))
|