功能特性: - 前端文章展示 (Markdown渲染、代码高亮) - 后台管理系统 (文章、分类、标签、作者管理) - 图片上传 (点击、拖拽、粘贴) - 网站设置 (Logo、底部宣传图片上传) - 访问统计 (IP记录、趋势图表) - 参考来源、附件支持 - 单端口部署 (16012) 技术栈: - Flask 3.0 + SQLAlchemy - SQLite数据库 - marked.js + highlight.js (Markdown渲染) - Chart.js (统计图表)
59 lines
2.2 KiB
Python
59 lines
2.2 KiB
Python
"""网站配置模型"""
|
||
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 |