Wagtail CMS

      在〈Wagtail CMS〉中尚無留言

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

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *