"""网站设置路由""" 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)