Python 3.12Django 5.2SQLite / MySQL / PostgreSQLGunicorn 生产就绪
3600+代码总行数,10数据模型,20+功能特性,3数据库引擎
核心功能
从安装到运营,覆盖博客系统全生命周期
网页安装向导
4 步引导完成部署:选择数据库引擎 → 自动迁移 → 创建管理员 → 站点设置。非技术用户也能独立完成首次上线。
文章管理系统
支持发布/草稿/置顶、分类与标签、自定义摘要、封面图片、ProseMirror 富文本编辑器,中文 slug 自动生成。
评论与回复
楼层式评论系统,支持嵌套回复、管理员审核机制,已审核评论自动展示。
文件上传下载
分类管理、大小限制、后缀白名单、下载计数统计、公开/私有权限控制。
统计仪表盘
PV/UV 趋势图(Chart.js)、热门文章/页面 TOP10、文件下载排行、来源统计,仅管理员可见。
搜索与归档
标题+内容全文模糊搜索,按年月分组归档,分页浏览。
SEO & 社交分享
完整的搜索引擎优化和社交媒体分享支持
RSS 2.0 订阅源(最新 20 篇文章)
Sitemap.xml(文章/分类/标签/静态页)
robots.txt 动态生成
Open Graph 社交分享标签
Twitter Card 卡片预览
中文 slug URL 支持
社交分享按钮(微博/QQ/复制链接)
面包屑导航层级指示
用户体验
注重细节的前端交互设计
深色 / 浅色主题
CSS 变量驱动,localStorage 持久化主题偏好,无闪烁切换,全站自适应。
文章目录 (TOC)
自动提取 h2/h3 标题生成目录树,sticky 定位跟随滚动,h3 层级缩进。
阅读时间估算
基于中文 500 字/分钟阅读速度,文章列表和详情页同步显示预估时长。
代码语法高亮
highlight.js CDN 集成,自动识别 190+ 编程语言,github-dark 深色主题。
回到顶部按钮
滚动超过 300px 后淡入显示,右下角固定定位,点击平滑滚动回页面顶部。
图片懒加载
原生 loading="lazy" 属性,浏览器级别的图片延迟加载,无需第三方 JS 库。
项目架构
清晰的双应用架构,职责分明
DjangoBlog/
├── config/ # 项目配置
│ ├── settings.py # 设置(数据库/日志/安全/国际化)
│ ├── urls.py # 根路由(admin/setup/sitemap/robots)
│ ├── wsgi.py # WSGI 入口
│ └── asgi.py # ASGI 入口
├── blog/ # 核心博客应用
│ ├── models.py # 10 个数据模型
│ ├── views.py # 视图(列表/详情/搜索/仪表盘/文件)
│ ├── admin.py # 后台管理(含 django-prose-editor 集成)
│ ├── middleware.py # 访问统计中间件
│ ├── feeds.py # RSS 订阅源
│ ├── sitemaps.py # Sitemap 定义
│ └── context_processors.py # 全局模板上下文
├── setup/ # 安装向导应用
│ ├── views.py # 4 步安装逻辑
│ └── middleware.py # 未安装重定向中间件
├── templates/ # 模板文件(13 个页面)
├── static/ # 静态资源(CSS/JS)
├── logs/ # 分级日志(access/app/error)
├── gunicorn.conf.py # 生产 WSGI 配置
└── deploy.sh # Linux 一键部署脚本
技术栈
现代、稳定、高性能的技术选型
Python
3.12
Django
5.2
SQLite
内置
MySQL
可选
PostgreSQL
可选
Gunicorn
WSGI
Chart.js
CDN
highlight.js
CDN
运维保障
分级日志 + 安全加固,生产环境可靠运行
分级日志
access.log(HTTP 请求)、app.log(应用警告)、error.log(严重错误)三文件分离,RotatingFileHandler 自动轮转,防止磁盘撑满。
安全特性
CSRF 全局保护、XSS 过滤、X-Frame-Options、Secure Cookie、Dashboard 权限隔离、评论审核机制、文件上传白名单校验。
一键部署
deploy.sh 自动化:安装依赖 → 收集静态文件 → 数据库迁移 → 创建日志目录 → 启动 Gunicorn,环境变量灵活配置。
快速开始
三种方式启动,适配不同场景
# 方式一:开发模式 $ python manage.py runserver 8000 # 访问 http://localhost:8000/setup/ 进入安装向导 # 方式二:生产部署(Linux) $ bash deploy.sh # 自动完成:pip install → collectstatic → migrate → gunicorn # 方式三:自定义 Gunicorn 参数 $ GUNICORN_BIND=0.0.0.0:9000 GUNICORN_WORKERS=4 \ gunicorn config.wsgi:application -c gunicorn.conf.py
环境变量配置
灵活的生产环境配置
Django 配置
DJANGO_DEBUG — 调试模式 (默认 True)DJANGO_SECRET_KEY — 密钥 (生产必须替换)DJANGO_ALLOWED_HOSTS — 允许域名
Gunicorn 配置
GUNICORN_BIND — 监听地址 (默认 0.0.0.0:8000)GUNICORN_WORKERS — Worker 数 (默认 CPU×2+1)GUNICORN_LOG_LEVEL — 日志级别
评论 (0)
暂无评论,来说点什么吧!