基于Django的博客系统
基于django的博客系统,
界面展示
首页前端界面如下:
文章页面:
后台页面:
文章页面:
项目结构图
代码主要文件结构如下:
分别介绍下各个目录:
- accounts: 用户模块
- blog:博客模块
- comments: 评论模块
- oauth: 第三方登录模块
- owntracks: owntracks位置追踪模块
- servermanager: 服务管理模块
- templates: 页面文件
主要功能:
- 文章,页面,分类目录,标签的添加,删除,编辑等。文章及页面支持
Markdown
,支持代码高亮。 - 支持文章全文搜索。
- 完整的评论功能,包括发表回复评论,以及评论的邮件提醒,支持
Markdown
。 - 侧边栏功能,最新文章,最多阅读,标签云等。
- 支持Oauth登陆,现已有Google,GitHub,facebook,微博,QQ登录。
- 支持
Memcache
缓存,支持缓存自动刷新。 - 简单的SEO功能,新建文章等会自动通知Google和百度。
- 集成了简单的图床功能。
- 集成
django-compressor
,自动压缩css
,js
。 - 网站异常邮件提醒,若有未捕捉到的异常会自动发送提醒邮件。
- 集成了微信公众号功能,现在可以使用微信公众号来管理你的vps了。
安装
使用pip安装:
pip install -Ur requirements.txt
如果你没有pip,使用如下方式安装:
OS X / Linux 电脑,终端下执行:
curl http://peak.telecommunity.com/dist/ez_setup.py | python
curl https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python
windows电脑:
下载 http://peak.telecommunity.com/dist/ez_setup.py 和 https://raw.github.com/pypa/pip/master/contrib/get-pip.py 这两个文件,双击运行。
初始化运行
修改DjangoBlog/setting.py
修改数据库配置,如下所示:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'djangoblog',
'USER': 'root',
'PASSWORD': 'password',
'HOST': 'host',
'PORT': 3306,
}
}
创建数据库
mysql数据库中执行:
CREATE DATABASE `djangoblog` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci */;
然后终端下执行:
./manage.py makemigrations
./manage.py migrate
创建超级用户
终端下执行:
./manage.py createsuperuser
创建测试数据
终端下执行:
./manage.py create_testdata
收集静态文件
终端下执行:
./manage.py collectstatic --noinput
./manage.py compress --force
开始运行:
执行:
./manage.py runserver
浏览器打开: http://127.0.0.1:8000/ 就可以看到效果了。
主要功能配置介绍:
缓存:
缓存默认使用memcache
缓存,如果你没有memcache
环境,则将settings.py
中的locmemcache
改为default
,并删除默认的default
配置即可。
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': '127.0.0.1:11211',
'KEY_PREFIX': 'django_test' if TESTING else 'djangoblog',
'TIMEOUT': 60 * 60 * 10
},
'locmemcache': {
'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
'TIMEOUT': 10800,
'LOCATION': 'unique-snowflake',
}
}
oauth登录:
现在已经支持微博,Google,GitHub,Facebook登录,需要在其对应的开放平台申请oauth登录权限,然后在
后台->Oauth 配置中新增配置,填写对应的appkey
和appsecret
以及回调地址。
owntracks:
owntracks是一个位置追踪软件,可以定时的将你的坐标提交到你的服务器上,现在简单的支持owntracks功能,需要安装owntracks的app,然后将api地址设置为:
你的域名/owntracks/logtracks
就可以了。然后访问你的域名/owntracks/show_dates
就可以看到有经纬度记录的日期,点击之后就可以看到运动轨迹了。地图是使用高德地图绘制。
邮件功能:
同样,将settings.py
中的ADMINS = [('liangliang', 'liangliangyy@gmail.com')]
配置为你自己的错误接收邮箱,另外修改:
EMAIL_HOST = 'smtp.zoho.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = os.environ.get('DJANGO_EMAIL_USER')
EMAIL_HOST_PASSWORD = os.environ.get('DJANGO_EMAIL_PASSWORD')
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
SERVER_EMAIL = os.environ.get('DJANGO_EMAIL_USER')
为你自己的邮箱配置。
微信公众号
集成了简单的微信公众号功能,在微信后台将token地址设置为:你的域名/robot
即可,默认token为lylinux
,当然你可以修改为你自己的,在servermanager/robot.py
中。
然后在后台->Servermanager->命令中新增命令,这样就可以使用微信公众号来管理了。
网站配置介绍
在后台->BLOG->网站配置中,可以新增网站配置,比如关键字,描述等,以及谷歌广告,网站统计代码及备案号等等。
其中的静态文件保存地址是保存oauth用户登录的头像路径,填写绝对路径,默认是代码目录。
代码高亮
如果你发现你文章的代码没有高亮,请这样书写代码块:
也就是说,需要在代码块开始位置加入这段代码对应的语言。
其他补充
注:本文著作权归作者,由demo大师代发,拒绝转载,转载需要作者授权