|
|
|
|
@ -0,0 +1,105 @@
|
|
|
|
|
# DjangoBlog
|
|
|
|
|
|
|
|
|
|
<p align="center">
|
|
|
|
|
<a href="https://github.com/liangliangyy/DjangoBlog/actions/workflows/django.yml"><img src="https://github.com/liangliangyy/DjangoBlog/actions/workflows/django.yml/badge.svg" alt="Django CI"></a>
|
|
|
|
|
<a href="https://github.com/liangliangyy/DjangoBlog/actions/workflows/codeql-analysis.yml"><img src="https://github.com/liangliangyy/DjangoBlog/actions/workflows/codeql-analysis.yml/badge.svg" alt="CodeQL"></a>
|
|
|
|
|
<a href="https://codecov.io/gh/liangliangyy/DjangoBlog"><img src="https://codecov.io/gh/liangliangyy/DjangoBlog/branch/master/graph/badge.svg" alt="codecov"></a>
|
|
|
|
|
<a href="https://github.com/liangliangyy/DjangoBlog/blob/master/LICENSE"><img src="https://img.shields.io/github/license/liangliangyy/djangoblog.svg" alt="license"></a>
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<p align="center">
|
|
|
|
|
<b>一款功能强大、设计优雅的现代化博客系统</b>
|
|
|
|
|
<br>
|
|
|
|
|
<a href="/docs/README-en.md">English</a> • <b>简体中文</b>
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
DjangoBlog 是一款基于 Python 3.10 和 Django 4.0 构建的高性能博客平台。它不仅提供了传统博客的所有核心功能,还通过一个灵活的插件系统,让您可以轻松扩展和定制您的网站。无论您是个人博主、技术爱好者还是内容创作者,DjangoBlog 都旨在为您提供一个稳定、高效且易于维护的写作和发布环境。
|
|
|
|
|
|
|
|
|
|
## ✨ 特性亮点
|
|
|
|
|
|
|
|
|
|
- **强大的内容管理**: 支持文章、独立页面、分类和标签的完整管理。内置强大的 Markdown 编辑器,支持代码语法高亮。
|
|
|
|
|
- **全文搜索**: 集成搜索引擎,提供快速、精准的文章内容搜索。
|
|
|
|
|
- **互动评论系统**: 支持回复、邮件提醒等功能,评论内容同样支持 Markdown。
|
|
|
|
|
- **灵活的侧边栏**: 可自定义展示最新文章、最多阅读、标签云等模块。
|
|
|
|
|
- **社交化登录**: 内置 OAuth 支持,已集成 Google, GitHub, Facebook, 微博, QQ 等主流平台。
|
|
|
|
|
- **高性能缓存**: 原生支持 Redis 缓存,并提供自动刷新机制,确保网站高速响应。
|
|
|
|
|
- **SEO 友好**: 具备基础 SEO 功能,新内容发布后可自动通知 Google 和百度。
|
|
|
|
|
- **便捷的插件系统**: 通过创建独立的插件来扩展博客功能,代码解耦,易于维护。我们已经通过插件实现了文章浏览计数、SEO 优化等功能!
|
|
|
|
|
- **集成图床**: 内置简单的图床功能,方便图片上传和管理。
|
|
|
|
|
- **自动化前端**: 集成 `django-compressor`,自动压缩和优化 CSS 及 JavaScript 文件。
|
|
|
|
|
- **健壮的运维**: 内置网站异常邮件提醒和微信公众号管理功能。
|
|
|
|
|
|
|
|
|
|
## 🛠️ 技术栈
|
|
|
|
|
|
|
|
|
|
- **后端**: Python 3.10, Django 4.0
|
|
|
|
|
- **数据库**: MySQL, SQLite (可配置)
|
|
|
|
|
- **缓存**: Redis
|
|
|
|
|
- **前端**: HTML5, CSS3, JavaScript
|
|
|
|
|
- **搜索**: Whoosh, Elasticsearch (可配置)
|
|
|
|
|
- **编辑器**: Markdown (mdeditor)
|
|
|
|
|
|
|
|
|
|
## 🚀 快速开始
|
|
|
|
|
|
|
|
|
|
### 1. 环境准备
|
|
|
|
|
|
|
|
|
|
确保您的系统中已安装 Python 3.10+ 和 MySQL/MariaDB。
|
|
|
|
|
|
|
|
|
|
### 2. 克隆与安装
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
# 克隆项目到本地
|
|
|
|
|
git clone https://github.com/liangliangyy/DjangoBlog.git
|
|
|
|
|
cd DjangoBlog
|
|
|
|
|
|
|
|
|
|
# 安装依赖
|
|
|
|
|
pip install -r requirements.txt
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 3. 项目配置
|
|
|
|
|
|
|
|
|
|
- **数据库**:
|
|
|
|
|
打开 `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;
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
- **更多配置**:
|
|
|
|
|
关于邮件发送、OAuth 登录、缓存等更多高级配置,请参阅我们的 [详细配置文档](/docs/config.md)。
|
|
|
|
|
|
|
|
|
|
### 4. 初始化数据库
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
python manage.py makemigrations
|
|
|
|
|
python manage.py migrate
|
|
|
|
|
|
|
|
|
|
# 创建一个超级管理员账户
|
|
|
|
|
python manage.py createsuperuser
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 5. 运行项目
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
# (可选) 生成一些测试数据
|
|
|
|
|
python manage.py create_testdata
|
|
|
|
|
|
|
|
|
|
# (可选) 收集和压缩静态文件
|
|
|
|
|
python manage.py collectstatic --noinput
|
|
|
|
|
python manage.py compress --force
|
|
|
|
|
|
|
|
|
|
# 启动开发服务器
|