Files
tech-blog/app/services/site_config_service.py
hz4th_coder e689fed71e 初始化技术博客项目
功能特性:
- 前端文章展示 (Markdown渲染、代码高亮)
- 后台管理系统 (文章、分类、标签、作者管理)
- 图片上传 (点击、拖拽、粘贴)
- 网站设置 (Logo、底部宣传图片上传)
- 访问统计 (IP记录、趋势图表)
- 参考来源、附件支持
- 单端口部署 (16012)

技术栈:
- Flask 3.0 + SQLAlchemy
- SQLite数据库
- marked.js + highlight.js (Markdown渲染)
- Chart.js (统计图表)
2026-06-04 23:12:34 +08:00

50 lines
1.7 KiB
Python

"""网站配置服务"""
from app import db
from app.models import SiteConfig
class SiteConfigService:
"""网站配置业务逻辑"""
@staticmethod
def get_config():
"""获取网站配置"""
return SiteConfig.get_config()
@staticmethod
def update(**kwargs):
"""更新网站配置"""
config = SiteConfig.get_config()
for key, value in kwargs.items():
if hasattr(config, key):
setattr(config, key, value)
db.session.commit()
return config
@staticmethod
def get_dict():
"""获取配置字典(用于模板全局变量)"""
config = SiteConfig.get_config()
return {
'site_name': config.site_name,
'site_subtitle': config.site_subtitle,
'site_logo': config.site_logo,
'site_keywords': config.site_keywords,
'site_description': config.site_description,
'footer_text': config.footer_text,
'footer_copyright': config.footer_copyright,
'footer_technology': config.footer_technology,
'promo_image_1': config.promo_image_1,
'promo_image_1_title': config.promo_image_1_title,
'promo_image_1_link': config.promo_image_1_link,
'promo_image_2': config.promo_image_2,
'promo_image_2_title': config.promo_image_2_title,
'promo_image_2_link': config.promo_image_2_link,
'promo_image_3': config.promo_image_3,
'promo_image_3_title': config.promo_image_3_title,
'contact_email': config.contact_email,
'contact_github': config.contact_github,
'articles_per_page': config.articles_per_page,
}