Files
tech-blog/app/models/site_config.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

59 lines
2.2 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""网站配置模型"""
from datetime import datetime
from app import db
class SiteConfig(db.Model):
"""网站配置表"""
__tablename__ = 'site_configs'
id = db.Column(db.Integer, primary_key=True)
# 基本信息
site_name = db.Column(db.String(100), default='技术博客')
site_subtitle = db.Column(db.String(200), default='分享技术,记录成长')
site_logo = db.Column(db.String(500)) # Logo图片URL
# SEO设置
site_keywords = db.Column(db.String(500))
site_description = db.Column(db.Text)
# 底部信息
footer_text = db.Column(db.String(200), default='© 2024 技术博客')
footer_copyright = db.Column(db.String(200))
footer_technology = db.Column(db.String(200), default='Powered by Flask')
# 底部宣传图片
promo_image_1 = db.Column(db.String(500)) # 宣传图片1 URL
promo_image_1_title = db.Column(db.String(100)) # 图片1标题/说明
promo_image_1_link = db.Column(db.String(500)) # 图片1点击链接
promo_image_2 = db.Column(db.String(500)) # 宣传图片2 URL
promo_image_2_title = db.Column(db.String(100)) # 图片2标题/说明
promo_image_2_link = db.Column(db.String(500)) # 图片2点击链接
promo_image_3 = db.Column(db.String(500)) # 宣传图片3 URL如二维码
promo_image_3_title = db.Column(db.String(100)) # 图片3标题/说明
# 联系方式
contact_email = db.Column(db.String(100))
contact_github = db.Column(db.String(100))
# 其他设置
articles_per_page = db.Column(db.Integer, default=10)
enable_comments = db.Column(db.Boolean, default=False)
# 时间戳
created_at = db.Column(db.DateTime, default=datetime.utcnow)
updated_at = db.Column(db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
def __repr__(self):
return f'<SiteConfig {self.site_name}>'
@staticmethod
def get_config():
"""获取网站配置(单例)"""
config = SiteConfig.query.first()
if not config:
config = SiteConfig()
db.session.add(config)
db.session.commit()
return config