以下內容是AI基于要求生成的技術文檔,僅供參考~
🧱 一、系統架構設計概覽
層級 | 內容 |
前端層 | HTML + Jinja2 模板引擎,集成 Markdown 編輯器、代碼高亮 |
后端層 | Flask 框架,RESTful 風格,Jinja2 渲染 |
數據庫 | SQLite(開發),MySQL/PostgreSQL(部署) |
用戶認證 | 無需注冊/登錄,僅管理員身份 |
文章編輯 | Markdown + 可視化富文本 |
部署建議 | Gunicorn + Nginx + Supervisor 或 Docker 方式 |
📌 二、功能需求詳解
? 1. 文章管理系統
📄 1.1 發布、草稿和編輯
- 功能細節:
-
- 草稿與已發布狀態區分(字段
status
:draft
/published
) - 編輯器支持 Markdown + 圖片上傳 + 預覽
- 支持二次編輯:包括內容、標簽、分類、權限
- 字段支持:標題、正文、作者、發布日期、分類、標簽、可見權限
- 自動保存草稿功能(可選)
- 草稿與已發布狀態區分(字段
- 技術實現:
-
- Markdown 編輯器:
Editor.md
/SimpleMDE
- Markdown 渲染:
markdown
+Flask-Markdown
- 圖片上傳支持:配置
Flask-Uploads
或Flask-Dropzone
- Markdown 編輯器:
? 2. 文章瀏覽與閱讀量統計
📊 2.1 閱讀統計
- 功能細節:
-
- 每篇文章記錄
view_count
- 全站統計總閱讀量(寫入到數據庫或緩存)
- 首頁展示總訪問量、每篇文章閱讀量
- 同一 IP / 用戶短時間內重復訪問不計數(可通過
session
控制)
- 每篇文章記錄
- 技術實現:
-
- 數據庫字段:
Article.view_count
、全局BlogStats.total_views
- 可選緩存:
Redis
緩存中間數據,降低數據庫壓力
- 數據庫字段:
? 3. 首頁展示與內容篩選
🏠 3.1 首頁
- 展示最近 10 篇可見文章
- 簡潔卡片式排布:標題、時間、摘要、閱讀量、標簽、分類等
🔍 3.2 搜索功能
- 功能細節:
-
- 支持關鍵詞模糊匹配標題和正文
- 結果頁分頁展示
- 技術實現:
-
- 數據庫搜索(LIKE)或全文搜索(使用
Whoosh
,Elasticsearch
可選) - 表單查詢:
GET /search?q=xxx
- 數據庫搜索(LIKE)或全文搜索(使用
? 4. 分類與標簽系統
🧩 4.1 分類系統(系列分類)
- 功能細節:
-
- 類似“專欄”、“專題系列”,一組文章屬于一個系列
- 一個系列頁展示所有屬于它的文章
🏷? 4.2 標簽系統
- 功能細節:
-
- 每篇文章支持多個標簽
- 標簽云展示
- 點擊標簽顯示相關文章
- 技術實現:
-
- 多對多表設計:
Article
?Tag
(中間表) - 單對多表設計:
Article
→Series
- 多對多表設計:
? 5. 可見權限管理
- 功能細節:
-
- 文章可設置權限:公開、私密、僅通過鏈接訪問
- 訪問權限字段:
visibility
(public
,private
,unlisted
) - 首頁僅展示
public
文章
- 技術實現:
if article.visibility == 'public' or (is_admin and article.visibility == 'private'):show_article()
else:return 403
? 6. 評論系統
💬 6.1 內置評論
- 功能細節:
-
- 匿名訪客可以留言
- 評論需要審核(可選)
- 支持 Markdown/純文本評論
- 每篇文章底部展示評論列表
- 嵌套評論(可選)
- 技術實現:
-
- 評論表結構:
id, article_id, username, content, created_at
- 可選開源評論服務:
Gitalk
,Disqus
(免開發)
- 評論表結構:
? 7. 博客后臺管理
?? 7.1 博主專屬后臺(本地密碼驗證,無需注冊功能)
- 功能細節:
-
- 添加、編輯、刪除文章
- 標簽、分類管理
- 評論審核(可選)
- 查看訪問量、文章統計、草稿列表
- 文章可切換草稿與發布狀態
- 可管理“關于我”、“友鏈”等信息頁
- 技術實現:
-
- 簡單密碼認證:內置身份驗證或 token 驗證
- 表單提交:
Flask-WTF
- 后臺路由統一以
/admin/
前綴隔離
? 8. 私信系統
📩 8.1 私信功能(訪客 → 博主)
- 功能細節:
-
- 訪客填寫昵稱 + 內容
- 后臺查看私信記錄
- 私信不公開顯示,可設郵件通知(可選)
- 技術實現:
-
- 私信表結構:
id, username, content, created_at, is_read
- 可選集成郵件通知:
Flask-Mail
- 私信表結構:
? 9. 代碼高亮
- 功能細節:
-
- 支持 Markdown 中的代碼塊高亮
- 支持多種語言(Python, JS, HTML...)
- 技術實現:
-
- 前端:
highlight.js
/Prism.js
- 后端:
Pygments
(配合markdown
庫渲染)
- 前端:
? 10. 文章歸檔功能
- 功能細節:
-
- 按年份/月份歸檔文章(例如:2025年5月)
- 頁面顯示該月內所有文章
- 技術實現:
Article.query.filter(func.strftime('%Y-%m', Article.created_at) == '2025-05')
📦 三、數據庫核心模型設計(概要)
class Article(db.Model):id, title, body, created_at, updated_at, status, visibilityview_count, tags, series_idclass Tag(db.Model):id, namearticles = relationship('Article', secondary=association_table)class Series(db.Model):id, name, descriptionclass Comment(db.Model):id, article_id, username, content, created_atclass PrivateMessage(db.Model):id, username, content, created_at, is_readclass SiteStats(db.Model):total_views, total_articles, total_comments
🛠 四、推薦技術棧匯總
模塊 | 推薦技術 |
后端框架 | Flask |
數據庫 | SQLite(開發)/ MySQL(生產) |
ORM | SQLAlchemy |
表單處理 | Flask-WTF |
Markdown 渲染 |
|
前端編輯器 |
|
搜索引擎 |
|
評論系統 | 自建 / Gitalk / Disqus |
可選緩存 | Redis(統計優化) |
部署方式 | Gunicorn + Nginx / Docker |
后臺安全 | 簡單 Token / 密碼驗證(無需用戶系統) |
前端展示 | Bootstrap / Tailwind(推薦) |
🔐 五、安全與優化建議
- 使用 CSRF 防護(Flask-WTF 默認支持)
- 圖片上傳路徑保護、防止 XSS(過濾 HTML)
- 評論內容過濾惡意腳本(
bleach
庫) - 日志記錄訪問 IP 和操作記錄
- 數據庫備份腳本定期運行
📌 六、后續擴展方向(非必需但推薦)
- 多語言支持(如中英切換)
- RSS訂閱功能
- 定時發布文章
- 管理員登錄日志審計
- API 開放接口(供移動端、第三方平臺調用)
? 七、開發建議順序(MVP)
優先級 | 功能模塊 |
🥇 必做 | 首頁展示、文章發布/編輯/草稿、Markdown 編輯器、閱讀統計、分類標簽系統 |
🥈 次優先 | 評論功能、關鍵詞搜索、訪問量統計、系列分類 |
🥉 可后加 | 私信功能、文章權限、歸檔、后臺統計面板 |