CMS 全名為 Content Management System,中文翻譯成「內容管理系統」,它是一種幫助使用者輕鬆建立、管理與維護網站內容的工具。
使用 Django 架設部落格網站比較常見的套件有 Wagtail、Mezzanine。Wagtail、Messanine 就是 CMS,本篇使用 Wagtail (鶺鴒)在 Django 下架設自已的 blog。
Wagtail 的官網為 https://wagtail.org/
開啟新專案
請在系統級安裝 wagtail
pip install wagtail
然後在 server 目錄下執行如下指令
wagtail start mahaljsp
mahaljsp 為網站的根目錄,請自行命名。執行完畢後會多出「mahaljsp」目錄,裏面有 home、 manage.py、requirements.txt 等目錄及檔案。
然後使用如下指令建立虛擬環境
cd mahaljsp python -m venv .venv
安裝
執行如下指令,此指令會自動安裝 django 及 wagtail 二個套件。
#Linux 下 #source ./.venv/bin/activate #Windows 下 .venv\Scripts\activate #安裝 django 及 wagtail #pip install -r requirements.txt #也可以直接安裝最新的版本 pip install django wagtail
再使用如下指令建立資料庫及設定最高權限帳密
python manage.py migrate #建立資料庫 python manage.py createsuperuser #設定最高權限帳密
最後啟動 Wagtail
python manage.py runserver 0.0.0.0:7000
使用如下網址即可看到最原始的網頁
http://localhost:7000
進入後台管理程式請使用如下網址
http://localhost:7000/admin
請特別注意,進入後台程式目前只能使用 localhost,不可以使用 ip 或真實網域

建立首頁
開啟 home 下的 models,改為下面代碼
from django.db import models
from wagtail.models import Page
from wagtail.fields import RichTextField
from wagtail.admin.panels import FieldPanel
class HomePage(Page):
body = RichTextField(blank=True) # 創造一個「body」的文件類型
content_panels = Page.content_panels + [
FieldPanel('body', classname="full"),
]
# 在後台將body加入加入需要填寫的欄位
開啟 templates/home/home_page.html,並改成如下
{% extends "base.html" %}
{% load wagtailcore_tags %} #告訴wagtail 需要使用core_tags 的預設模塊
{% block body_class %}template-homepage{% endblock %}
{% block content %}
{{ page.body|richtext }}
{% endblock %}
更新資料庫及設定
python manage.py makemigrations python manage.py migrate
重啟 Django
python manage.py runserver 0.0.0.0:7000
進入後台,在 page/home/編輯,然後在 body 撰寫簡易文字,最後按下 Publish。

然後在瀏覽器輸入 http://localhost:7000 即可看到剛剛撰寫的文字。

此時如果有設定 Nginx,也可以使用 ip 比如 http://192.168.1.2 進行瀏覽。
todo
