Python+Wagtail+Puputでブログを作ろう #1

プログラミング

Pythonでも簡単にブログが作れます!

CMSといえばWordPressが定番ですが、あえてWordPressを選択せずPythonで作ります。
とはいえ最初から言うのもなんですが…ぶっちゃけ全てにおいてWordPressには敵わないです。
ですがPythonが好きで自分でコードを書きながらシステムを作りたい方にはオススメです。

ブログの特徴

PythonにはWEBフレームワークとしてDjangoというフルスタックWEBフレームワークがあります。
そこでCMS用に設計されたプラグインとしてWagtail、さらにWagtailの上にブログ機能を持たせるためのプラグインとしてPuputというものを載せて作っていきます。

なのでブログ機能を担っているのはPuputになりますので、Puputが持っている特徴がPython+Wagtail+Puputで作るブログの特徴となります。

Puputの特徴はPuputのドキュメントから抜粋すると以下になります。

  • WordPressとZinniaに触発されている
  • デフォルトでシンプルでレスポンシブなHTMLテンプレート
  • SEOフレンドリーなURL
  • Disqusコメントのサポート
  • 著者、タグ、カテゴリ、アーカイブ、検索用語によるエントリ
  • 最後の人気のあるエントリ
  • 構成可能なサイドバーウィジェット
  • RSSフィード
  • 関連エントリ
  • 拡張可能なエントリモデル
  • 構成可能なデフォルトのテンプレートの色
  • ブログエントリのソーシャルシェア(Facebook、Twitter、LinkedIn)
GitHub - APSL/puput: A Django blog app implemented in Wagtail
A Django blog app implemented in Wagtail. Contribute to APSL/puput development by creating an account on GitHub.

ブログを構成するほとんどの機能が網羅されています。
ただし、WordPressと比べると以下のデメリットもあります。

  • 用意されているテンプレートはデフォルトのテンプレート1つのみ
  • テンプレート自体の改造は管理画面から不可、内部でコードを書き換える必要あり
  • 始めるまでにいくつかのコードを手動で実行して環境構築しなければならない
  • 記事の編集画面が初期だとチープ

こうしてみると自力で何とか作らないといけない部分が多いので、WordPressの手軽さに慣れている方からすると面食らいます。そういう意味でも独自で実装するのが好きな方にはオススメです。

環境構築の手順

それでは実際に環境構築に入るので順番に以下を行っていきます。

手順
  1. Pythonのインストール
  2. venvで仮想環境を用意
  3. pipでWagtail、Puputのインストール
  4. Wagtailの初期設定
  5. Puputの初期設定
  6. migrateと管理者ユーザーの追加

Pythonのインストール

Python公式サイトからインストーラーをダウンロードして実行します。

Download Python
The official home of the Python Programming Language

基本的に何もせずインストーラーの指示に従って次へ進めばOKですが、”Add Python 3.x to PATH” というチェックボックスにはチェックを入れてください。(もし飛ばしてしまったらもう一度インストーラーを実行して再びチェックを入れればOKです)

インストールが完了したらコマンドプロンプト(WindowsならWindowsキー押下後にcmdと入力)を開いて以下のコマンドを実行します。

python -V

インストールしたPythonのバージョンが返ってきたらOKです。

venvで仮想環境を用意

Pythonをインストールしたら諸々のライブラリを入れる専用の仮想環境を用意します。

適当な場所に新しくフォルダを作成したらコマンドプロンプトで以下のコマンドを実行します。
今回は例として「C:\python\blog\venv」というフォルダを作成してそこに仮想環境を作成します。

python -m venv C:\python\blog\venv

続けて仮想環境を有効化(Activate)するために以下のコマンドも実行します。

C:\python\blog\venv\Scripts\activate

有効化するとコマンドプロンプトの頭に

(venv) C:\Users\XXX>

という感じでカッコ内に仮想環境のフォルダ名が表示されるはずです。

pipでWagtail、Puputのインストール

前章で仮想環境を有効化した状態でWagtail、Puputをインストールします。

コマンドプロンプトで以下のコマンドを順番に実行します。

pip install --upgrade pip
pip install wagtail
pip install puput

Wagtailの初期設定

Wagtailの初期設定を行うため初回のプロジェクトファイルを作成します。
今回は例として「C:\python\blog」の中に「mysite」というプロジェクトファイルを作成します。
コマンドプロンプトで以下のコマンドを順番に実行します。

cd C:\python\blog
wagtail start mysite
cd mysite
pip install -r requirements.txt
python manage.py migrate

Puputの初期設定

Puputの初期設定は少しファイルを修正する必要があります。

Wagtailの動きにPuputを合わせていくため以下のファイルを開いて2行追加します。

mysite\mysite\urls.py
from puput import urls as puput_urls

を上部のimport群に追加し、以下の既存のコード

path("", include(wagtail_urls)),

の真上に以下のコードを追加

path("", include(puput_urls)),

以下のファイルを開いてPuputを有効化していきます。

mysite\mysite\settings\base.py

INSTALLED_APPSに以下を追加

'wagtail.contrib.sitemaps',
'wagtail.contrib.routable_page',
'django_social_share',
'puput',
'colorful',

ファイル末尾に以下のコードを追加

PUPUT_AS_PLUGIN = True

migrateと管理者ユーザーの追加

ここまで終わったらあと少しです。

データベースと同期させるために以下のコマンドを実行します。

cd C:\python\blog\mysite
python manage.py migrate

最後にブログの管理者ユーザーを追加するため createsuperuser コマンドを実行します。

python manage.py createsuperuser
  • ユーザー名
  • メールアドレス
  • パスワード
  • パスワード再確認

の入力を促されますのでそれぞれ入力していきます。(メールアドレスは空でもOK)
このユーザーは管理者画面にログインするために必要なのでパスワードは忘れないようにしましょう。

サーバーを起動

環境構築が終わったらいよいよサーバーを起動します。

Django内臓のテスト用WEBサーバーを起動しますので以下のコマンドを実行します。

python manage.py runserver

http://localhost:8000 にアクセスすると以下のような初期ページが表示されます。

http://localhost:8000/admin にアクセスすると以下のようにログインページが表示されます。

createsuperuser で作成したユーザー名、パスワードを入力してログインすると以下のように管理者画面が表示されます。

管理者画面はブログの設定や記事の作成、投稿などを行います。

今回はサーバー起動までで。
次回はブログとして記事を作ったりしていきたいと思います。

タイトルとURLをコピーしました