功能特性: - 前端文章展示 (Markdown渲染、代码高亮) - 后台管理系统 (文章、分类、标签、作者管理) - 图片上传 (点击、拖拽、粘贴) - 网站设置 (Logo、底部宣传图片上传) - 访问统计 (IP记录、趋势图表) - 参考来源、附件支持 - 单端口部署 (16012) 技术栈: - Flask 3.0 + SQLAlchemy - SQLite数据库 - marked.js + highlight.js (Markdown渲染) - Chart.js (统计图表)
33 lines
975 B
Python
33 lines
975 B
Python
"""分类模型"""
|
|
from datetime import datetime
|
|
from app import db
|
|
|
|
|
|
class Category(db.Model):
|
|
"""文章分类表"""
|
|
__tablename__ = 'categories'
|
|
|
|
id = db.Column(db.Integer, primary_key=True)
|
|
name = db.Column(db.String(50), unique=True, nullable=False)
|
|
slug = db.Column(db.String(50), unique=True, nullable=False)
|
|
description = db.Column(db.String(200))
|
|
sort_order = db.Column(db.Integer, default=0)
|
|
|
|
# 关联文章
|
|
articles = db.relationship('Article', back_populates='category')
|
|
|
|
created_at = db.Column(db.DateTime, default=datetime.utcnow)
|
|
|
|
def __repr__(self):
|
|
return f'<Category {self.name}>'
|
|
|
|
def to_dict(self):
|
|
"""转换为字典"""
|
|
return {
|
|
'id': self.id,
|
|
'name': self.name,
|
|
'slug': self.slug,
|
|
'description': self.description,
|
|
'sort_order': self.sort_order,
|
|
'article_count': len(self.articles)
|
|
} |