一款功能强大、设计优雅的现代化博客系统
English • 简体中文
DjangoBlog 是一款基于 Python 3.10+ 和 Django 5.2 构建的高性能博客平台。它不仅提供了传统博客的所有核心功能,还通过一个灵活的插件系统,让您可以轻松扩展和定制您的网站。无论您是个人博主、技术爱好者还是内容创作者,DjangoBlog 都旨在为您提供一个稳定、高效且易于维护的写作和发布环境。
确保您的系统中已安装 Python 3.10+ 和 MySQL/MariaDB。
# 克隆项目到本地
git clone https://github.com/liangliangyy/DjangoBlog.git
cd DjangoBlog
# 安装依赖
pip install -r requirements.txt
djangoblog/settings.py 文件,找到 DATABASES 配置项,修改为您的 MySQL 连接信息。python
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'djangoblog',
'USER': 'root',
'PASSWORD': 'your_password',
'HOST': '127.0.0.1',
'PORT': 3306,
}
}
在 MySQL 中创建数据库:
sql
CREATE DATABASE `djangoblog` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
python manage.py makemigrations
python manage.py migrate
# 创建一个超级管理员账户
python manage.py createsuperuser
# 进入前端目录
cd frontend
# 安装依赖(首次运行需要)
npm install
# 构建生产环境资源
npm run build
# 返回项目根目录
cd ..
# (可选) 生成一些测试数据
python manage.py create_testdata
# 收集静态文件
python manage.py collectstatic --noinput
# (可选) 压缩静态文件
python manage.py compress --force
# 启动开发服务器
python manage.py runserver
现在,在您的浏览器中访问 http://127.0.0.1:8000/,您应该能看到 DjangoBlog 的首页了!
如果您需要开发前端代码,可以使用 Vite 的热更新功能:
# 在 frontend 目录下启动开发服务器
cd frontend
npm run dev
这将启动 Vite 开发服务器,修改前端代码后会自动重新构建。
插件系统是 DjangoBlog 的核心特色之一。它允许您在不修改核心代码的情况下,通过编写独立的插件来为您的博客添加新功能。
工作原理: 插件通过在预定义的"钩子"上注册回调函数来工作。例如,当一篇文章被渲染时,after_article_body_get 钩子会被触发,所有注册到此钩子的函数都会被执行。
现有插件: 项目已内置以下实用插件
view_count - 文章浏览计数统计seo_optimizer - SEO 优化增强article_copyright - 文章版权声明(现代化样式)article_recommendation - 智能文章推荐(响应式卡片布局)external_links - 外部链接处理(自动添加图标)image_lazy_loading - 图片懒加载优化(淡入动画)reading_time - 文章阅读时间估算cloudflare_cache - Cloudflare 缓存管理
开发您自己的插件: 只需在 plugins 目录下创建一个新的文件夹,并编写您的 plugin.py。欢迎探索并为 DjangoBlog 社区贡献您的创意!
我们热烈欢迎任何形式的贡献!如果您有好的想法或发现了 Bug,请随时提交 Issue 或 Pull Request。
本项目基于 MIT License 开源。
如果您觉得这个项目对您有帮助,并且希望支持我继续维护和开发新功能,欢迎请我喝杯咖啡!您的每一份支持都是我前进的最大动力。

(左) 支付宝 / (右) 微信
特别感谢 JetBrains 为本项目提供的免费开源许可证。
如果本项目帮助到了你,请在这里留下你的网址,让更多的人看到。您的回复将会是我继续更新维护下去的动力。
$ claude mcp add DjangoBlog \
-- python -m otcore.mcp_server <graph>