- 将 routes/admin.py (672行) 拆分为 routes/admin/ 包 - 按功能模块拆分:auth, dashboard, articles, categories, tags, settings, stats, upload, authors - 端口从 16012 改为 16013 - 初始化数据库和管理员账户
68 lines
3.1 KiB
Python
68 lines
3.1 KiB
Python
"""网站设置路由"""
|
|
from flask import render_template, redirect, url_for, request, flash
|
|
from app.routes.admin import admin_bp, login_required
|
|
from app.services import SiteConfigService, UploadService
|
|
|
|
|
|
@admin_bp.route('/settings', methods=['GET', 'POST'])
|
|
@login_required
|
|
def settings():
|
|
"""网站设置"""
|
|
if request.method == 'POST':
|
|
# 处理图片上传
|
|
promo_image_1 = request.form.get('promo_image_1', '')
|
|
promo_image_2 = request.form.get('promo_image_2', '')
|
|
promo_image_3 = request.form.get('promo_image_3', '')
|
|
|
|
# 上传图片1
|
|
if 'promo_image_1_file' in request.files:
|
|
file = request.files['promo_image_1_file']
|
|
if file and file.filename:
|
|
image, error = UploadService.upload_image(file)
|
|
if image:
|
|
promo_image_1 = UploadService.get_image_url(image.filename)
|
|
|
|
# 上传图片2
|
|
if 'promo_image_2_file' in request.files:
|
|
file = request.files['promo_image_2_file']
|
|
if file and file.filename:
|
|
image, error = UploadService.upload_image(file)
|
|
if image:
|
|
promo_image_2 = UploadService.get_image_url(image.filename)
|
|
|
|
# 上传图片3
|
|
if 'promo_image_3_file' in request.files:
|
|
file = request.files['promo_image_3_file']
|
|
if file and file.filename:
|
|
image, error = UploadService.upload_image(file)
|
|
if image:
|
|
promo_image_3 = UploadService.get_image_url(image.filename)
|
|
|
|
# 更新设置
|
|
SiteConfigService.update(
|
|
site_name=request.form.get('site_name', '技术博客'),
|
|
site_subtitle=request.form.get('site_subtitle', ''),
|
|
site_logo=request.form.get('site_logo', ''),
|
|
site_keywords=request.form.get('site_keywords', ''),
|
|
site_description=request.form.get('site_description', ''),
|
|
footer_text=request.form.get('footer_text', ''),
|
|
footer_copyright=request.form.get('footer_copyright', ''),
|
|
footer_technology=request.form.get('footer_technology', ''),
|
|
promo_image_1=promo_image_1,
|
|
promo_image_1_title=request.form.get('promo_image_1_title', ''),
|
|
promo_image_1_link=request.form.get('promo_image_1_link', ''),
|
|
promo_image_2=promo_image_2,
|
|
promo_image_2_title=request.form.get('promo_image_2_title', ''),
|
|
promo_image_2_link=request.form.get('promo_image_2_link', ''),
|
|
promo_image_3=promo_image_3,
|
|
promo_image_3_title=request.form.get('promo_image_3_title', ''),
|
|
contact_email=request.form.get('contact_email', ''),
|
|
contact_github=request.form.get('contact_github', ''),
|
|
articles_per_page=request.form.get('articles_per_page', 10, type=int),
|
|
)
|
|
flash('网站设置已更新', 'success')
|
|
return redirect(url_for('admin.settings'))
|
|
|
|
config = SiteConfigService.get_config()
|
|
return render_template('admin/settings.html', config=config)
|