Files
tech-blog/app/routes/admin/settings.py
hz4th_coder 503a9780b2 refactor: 拆分admin路由为模块化结构,端口改为16013
- 将 routes/admin.py (672行) 拆分为 routes/admin/ 包
- 按功能模块拆分:auth, dashboard, articles, categories, tags, settings, stats, upload, authors
- 端口从 16012 改为 16013
- 初始化数据库和管理员账户
2026-06-25 11:21:36 +08:00

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)