1. 程式人生 > >基於Django的部落格系統

基於Django的部落格系統

基於django的部落格系統,

介面展示

首頁前端介面如下:

文章頁面:
後臺頁面:

文章頁面:

##專案結構圖

程式碼主要檔案結構如下:

分別介紹下各個目錄:

  • accounts: 使用者模組
  • blog:部落格模組
  • comments: 評論模組
  • oauth: 第三方登入模組
  • owntracks: owntracks位置追蹤模組
  • servermanager: 服務管理模組
  • templates: 頁面檔案

主要功能:

  • 文章,頁面,分類目錄,標籤的新增,刪除,編輯等。文章及頁面支援Markdown,支援程式碼高亮。
  • 支援文章全文搜尋。
  • 完整的評論功能,包括髮表回覆評論,以及評論的郵件提醒,支援Markdown
  • 側邊欄功能,最新文章,最多閱讀,標籤雲等。
  • 支援Oauth登陸,現已有Google,GitHub,facebook,微博,QQ登入。
  • 支援Memcache快取,支援快取自動重新整理。
  • 簡單的SEO功能,新建文章等會自動通知Google和百度。
  • 集成了簡單的圖床功能。
  • 整合django-compressor,自動壓縮cssjs
  • 網站異常郵件提醒,若有未捕捉到的異常會自動傳送提醒郵件。
  • 集成了微信公眾號功能,現在可以使用微信公眾號來管理你的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

初始化執行

修改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

主要功能配置介紹:

快取:

快取預設使用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 配置中新增配置,填寫對應的appkeyappsecret以及回撥地址。

owntracks:

owntracks是一個位置追蹤軟體,可以定時的將你的座標提交到你的伺服器上,現在簡單的支援owntracks功能,需要安裝owntracks的app,然後將api地址設定為:
你的域名/owntracks/logtracks就可以了。然後訪問你的域名/owntracks/show_dates就可以看到有經緯度記錄的日期,點選之後就可以看到運動軌跡了。地圖是使用高德地圖繪製。

郵件功能:

同樣,將settings.py中的ADMINS = [('liangliang', '[email protected]')]配置為你自己的錯誤接收郵箱,另外修改:

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大師發表,拒絕轉載,轉載需要作者授權