Files
tech-blog/app/models/site_config.py

59 lines
2.2 KiB
Python
Raw Permalink Normal View History

"""网站配置模型"""
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