基于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資料庫中執行:
```sql
CREATE DATABASE `djangoblog` ;
```
然後終端下執行:
./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`配置即可。
```python
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', '[email protected]')]`配置為你自己的錯誤接收郵箱,另外修改:
```python
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使用者登入的頭像路徑,填寫絕對路徑,預設是代碼目錄。
## 代碼高亮
如果你發現你文章的代碼沒有高亮,請這樣書寫代碼塊:

也就是說,需要在代碼塊開始位置加入這段代碼對應的語言。
##其他補充
[django (Python Web 架構)說明][1]
[1]: https://baike.baidu.com/item/django/61531?fr=aladdin