Wagtailインストールと初期設定記事カバー画像
wagtail 27 min read

【2025年最新】Python製のCMSフレームワークwagtailって何?

avatar-m-1

karrinn

著者

まずは30秒で診断

あなたにWagtailは向いている?

NOYES

Q1 / 5

Pythonでコードを
書いた経験がある

1 / 5

← スワイプまたはボタンで回答 →

「WordPressのテーマやプラグインが思い通りにならない...」そんな経験はありませんか?
Python開発者なら、Django製のCMS「Wagtail」という選択肢があります。コードで自由にカスタマイズしながら、コンテンツ管理の効率化も両立できるフレームワークです。

KEY TAKEAWAYS

この記事でわかること

  • CMSの基本概念:コンテンツ管理システムとは何か、どんな役割を果たすのか
  • WordPressとWagtailの本質的な違い:提供形態と設計思想の差を理解
  • Wagtailを選ぶ理由:柔軟性、Pythonエコシステム、StreamFieldの魅力
  • すぐに試せる環境構築:10分でWagtailプロジェクトを立ち上げる手順

参考: Wagtail公式ドキュメント

この記事の対象者

AUDIENCE 01

プログラミングができるCMS探しの方

多少のコードが書ける方で、自分好みにカスタマイズできるCMSを探している方におすすめです。

AUDIENCE 02

Djangoをさらに活用したい方

Pythonフレームワーク「Django」を習得済みで、さらにDjangoを便利に使いたい方に最適です。

AUDIENCE 03

WordPress等に不満がある方

既存CMSのテーマやプラグインに限界を感じ、情報収集している方にぴったりです。

本記事では以下のような技術を活用していきます。これらに興味がある、または習得済みだとスムーズです。

名称バージョン概要
Python3.12主となるプログラミング言語
Django5.2系(LTS)WagtailのもとになるPythonフレームワーク
Wagtail7.0系(LTS)Python製、Djangoの拡張であるCMSライブラリ
uv0.8以降Pythonのバージョン・パッケージ管理ツール

参考: Wagtail Release Schedule

そもそもCMSってなに?

cms

CMSとは、コンテンツ・マネジメント・システム(Content Management System)の略です。Webサイトのコンテンツ(テキスト、画像、動画など)を、専門的な知識がなくても簡単に追加・管理・更新できる仕組みのことを指します。

もっと簡単に言うと、Webサイトの「裏側」にある管理画面のようなものです。

通常、Webサイトを作るにはHTMLやCSS、JavaScriptといった専門的な言語でコードを書く必要があります。しかし、CMSを使えば、まるでブログやSNSに投稿するように、見たままの感覚で記事を作成したり、写真をアップロードしたりできます。

CMSがあると何が嬉しい?

プログラマーでないマーケターや編集者でも、Webサイトの運営に直接関わることができるようになります。CMSは、Webサイト制作の効率を飛躍的に向上させるための重要なツールと言えるでしょう。

もっとも有名なCMS「WordPress」との違いは?

CMSと聞いて、多くの人が真っ先に思い浮かべるのがWordPressではないでしょうか。全世界のWebサイトの実に42.8%以上がWordPressで作られていると言われています。では、WagtailとWordPressは具体的に何が違うのでしょうか?

wagtail-vs-wordpress
比較項目WordPressWagtail
提供形態完成済みのソフトウェアDjangoアプリ(フレームワーク)
主な利用者ブロガー、マーケターなどの非開発者Python/Django開発者
カスタマイズ性テーマとプラグインが圧倒的に豊富コードによる自由な設計
設計思想ブログから始まった多機能CMS開発者が作る柔軟なコンテンツ管理基盤
セキュリティプラグイン依存でリスクが増加しやすいGoogleも認めた堅牢なセキュリティ

一言で言うと、提供形態設計思想が根本的に異なります。

参考: Wagtail vs WordPress公式比較, W3Techs CMS統計

クイズ

この特徴はWordPress?Wagtail?タップで答え合わせ

6万以上の
プラグインがある

タップで答え

WordPress

豊富なエコシステム

コンテンツ構造を
完全に自由に定義

タップで答え

Wagtail

モデルで自由設計

NASA・Googleが
採用

タップで答え

Wagtail

高セキュリティ評価

世界のWebサイトの
42%以上が使用

タップで答え

WordPress

圧倒的シェア

StreamFieldで
ブロック自由配置

タップで答え

Wagtail

柔軟なコンテンツ編集

プログラミング不要で
サイト構築可能

タップで答え

WordPress

ノーコードで完結

WordPressのメリット、デメリット

メリット

WordPressは、インストールすればすぐにブログサイトとして機能する「完成されたソフトウェア」です。

とにかく豊富なテーマ(デザインテンプレート)とプラグイン(拡張機能)があり、プログラミング知識が一切なくてもECサイトや予約サイトなど、様々な用途のWebサイトを構築できます。コミュニティも巨大で、困ったときの情報も豊富です。

デメリット

一方で、完成されているがゆえに自由な変更には弱いです。

テーマやプラグインとして用意されているものを開発者の用意したとおりに使う分には素早くきれいにできます。逆にそれがない場合はPHP等でコーディングすることになりますが、これが非常に面倒です。

筆者はもはや諦めてテーマやプラグインが存在しなかったりイメージと違うデザインも目をつぶって使っていました。

Wagtailのメリット、デメリット

メリット

Wagtailは、PythonのWebフレームワークであるDjango上で動作する「CMSフレームワーク」です。Wagtail単体ではWebサイトとして機能しません。

開発者がDjangoの知識を活かして、コンテンツの構造(モデル)から管理画面の項目、そしてサイトの見た目(フロントエンド)まで、すべてをコードで定義していきます。

自分の思い描いたデザイン、機能のWebアプリをコーディングさえ苦にならなければ完全に実現することができます。

デメリット

メリットと裏表ですが、コーディングが前提となっているCMSフレームワークですので、Pythonが大前提習得されていてプログラムをある程度できる人でないと扱うことはできません。

例えばまったく別業種の方が副業でブログなどを書いてみようといった時には絶対におすすめできません。

また、特殊なユースケースではドキュメントも用意されておらず、Wagtailそのもののソースコードを読み込んで、Djangoのテンプレートオーバーライドの仕組みなどを活用して機能を実現しなければならない場合もあります。

公式ドキュメントにある以下の一文があります。

The best user interface for a programmer is usually a programming language.

(プログラマーにとって最適なユーザーインターフェースは通常、プログラミング言語です)

このように書いてある通り、非開発者のみで使うようにはそもそも作られていないことがわかります。

参考: The Zen of Wagtail

Wagtailを選ぶ理由

WordPressという強力な選択肢がある中で、あえてWagtailを選ぶのには明確な理由があります。

圧倒的な柔軟性と拡張性

Wagtailの最大の魅力は、その柔軟性です。WordPressが「投稿」や「固定ページ」といった決まった型を基本とするのに対し、Wagtailでは開発者がコンテンツの構造をゼロから定義します。

例えば、「イベントページ」というコンテンツタイプを作り、それには「開催日時」「場所」「登壇者リスト」といった独自のフィールドを持たせる、といったことが自由自在です。

Python/Djangoエコシステムの活用

WagtailはDjango製です。これは、すでにPythonやDjangoに慣れ親しんでいる開発者にとって、学習コストが低いという大きなメリットがあります。

また、Djangoが持つ強力なORM、堅牢なセキュリティ、豊富なサードパーティライブラリといった恩恵を余すところなく受けることができます。AI活用の観点でもPythonは有利です。

洗練された管理画面とStreamField

コンテンツを管理する編集者にとって、管理画面の使いやすさは非常に重要です。Wagtailは、直感的でモダンなUIを提供することに力を入れています。

特に「StreamField」という機能は画期的で、テキスト、画像、動画、引用といった様々なコンテンツブロックを、編集者が好きな順番で自由に組み合わせてページを作成できます。

ヘッドレスCMSとしての利用

Wagtailは、管理画面(バックエンド)と表示部分(フロントエンド)を完全に分離するヘッドレスCMSとしても非常に強力です。

APIを通じてコンテンツを配信できるため、ReactやVue.jsといったモダンなJavaScriptフレームワークで作るWebサイトや、スマートフォンアプリのバックエンドとしても活用できます。

筆者の実感

自分で定義しているので、他の出来合いのCMSで起きがちだった「プラグイン入れたけどそもそもプラグインの使い方がむずい・わからない」みたいなことが起きないのが最高です。

参考: Wagtail Features

Wagtailの得意なこと、苦手なこと

どんなツールにも向き不向きがあります。Wagtailを選ぶ前に、その特性を理解しておくことは非常に重要です。

Wagtailが得意なこと

パフォーマンスや機能、デザインに明確な希望があり妥協したくない場合はWagtailがおすすめです。

  • 思い描いたサイトデザインを完璧に実現
  • AVIFなどモダンな拡張子への対応
  • 精密なキャッシュ戦略
  • 高いスケーラビリティとパフォーマンス

Wagtailが苦手なこと

開発が必須であるため「開発者じゃない」とか「デザインテーマは出来合いのものを買うから今日から書き始めたい」みたいなシーンでは選ぶべきではないです。

  • 開発なしですぐに始めたい場合
  • 既成テーマで十分な場合
  • プラグインだけで機能を追加したい場合

Wagtailで作られた有名サイト事例

Wagtailは個人のプロジェクトだけでなく、世界中の名だたる企業や組織でも採用されています。そのスケーラビリティと信頼性の高さを証明する事例をいくつかご紹介します。

CASE 01

NASA (アメリカ航空宇宙局)

Jet Propulsion Laboratory サイトなどでWagtailを採用しており、膨大な科学的情報を効率的に管理しています。

CASE 02

Google

blog.google をはじめ、Googleの厳格なセキュリティ基準を満たす唯一のCMSとして、多くのオフィシャルブログやサイトで活用されています。

CASE 03

Mozilla

Firefoxブラウザで知られるMozillaの公式サイトやブログでも、Wagtailがその情報発信を支えています。

CASE 04

イギリス国民保健サービス (NHS)

英国の公的な医療サービスサイトという、非常に高い信頼性とアクセシビリティが求められる大規模サイトの基盤としてもWagtailが選ばれています。

他にも公式サイトで紹介されているような様々な有名企業・組織でWagtailが採用されています。Red Cross、Salesforce、NBC、BMW、MITなども含まれます。

参考: Wagtail Showcase, Google sponsors Wagtail CMS

Wagtailプロジェクトを立ち上げてみる

実際にWagtailのプロジェクトを始めてみましょう。ここではPython(uv)がインストールされている環境を前提とします。

今後の記事では初心者がWagtailにチャレンジできるように丁寧に解説していきますが、少なくともこのくらいのプログラミング的なことは日常的にやりますので、身に着ける気持ちくらいは必要です。

体験してみよう

ボタンを押してコマンドを「実行」してみてください

~/myproj
$

「uv init」から順番に実行してみましょう

wagtail-setup-image

仮想環境の作成

Pythonでなにかを開発するならまずはここから。クリーンな仮想環境を作成します。

  • uv init: プロジェクトの初期化
  • uv sync: 仮想環境を作成
bash
# ディレクトリの作成
mkdir myproj
# 作成したディレクトリへ移動
cd myproj
# プロジェクトの初期化
uv init
# 仮想環境作成
uv sync
uv-init-sync-cli

Wagtailのインストール

仮想環境が作成できたらwagtailをインストールします。2025年5月にリリースされた7.0がLTS(長期サポート)版です。

  • uv add: パッケージを追加
  • uv pip list: インストール確認
bash
# wagtailのインストール(LTS版の7.0系)
uv add "wagtail>=7.0.0,<8.0.0"
# バージョン確認
uv pip list
uv-add-wagtail-cli

プロジェクトの作成

Wagtailのプロジェクト構造を生成します。Djangoでいうところのdjango-admin startprojectにあたります。

  • wagtail start: プロジェクト作成コマンド
  • 最後の.は現在のディレクトリを指定
bash
# 現在のディレクトリにwagtailプロジェクトを作成
uv run wagtail start myproj .
uv-run-wagtail-start-cli

データベース初期化とユーザー作成

マイグレートとスーパーユーザ作成です。Djangoとまったく同じコマンドが使えます。

  • migrate: データベーステーブル作成
  • createsuperuser: 管理者アカウント作成
bash
# マイグレート
uv run manage.py migrate
# スーパーユーザ作成(任意のユーザ情報を入れて作成)
uv run manage.py createsuperuser
uv-migrate-cliuv-createsuperuser-cli

開発サーバーの起動

サーバー起動もDjangoと同じです。ブラウザでhttp://127.0.0.1:8000にアクセスすると、Wagtailのたまごちゃんが表示されます。

  • runserver: 開発サーバー起動
  • 管理画面は/admin/でアクセス可能
bash
# 開発サーバ起動
uv run manage.py runserver
wagtailデフォルトトップページ

管理画面にアクセスしてみる

http://127.0.0.1:8000/admin/にアクセスすると、Wagtailの管理画面が表示されます。先ほど作成したスーパーユーザでログインしてみましょう。

  • 直感的でモダンなUI
  • ページ、画像、ドキュメントの管理
  • 多言語対応も標準装備
wagtail-login-form-gui
wagtail-admin-gui

完了! このようにDjangoプロジェクトだとロケットが飛んでいるトップページですが、Wagtailではたまごちゃんが表示されます。

これがWagtailプロジェクト作成の第一歩ですね。

筆者の場合はここから自動作成されるいらないhomeアプリ、searchアプリを消しちゃってなんやかんやの開発を始めていくのがパターン化しています。

参考: Your First Wagtail Site

Wagtailでのブログ開発に困ったら...

Wagtailは非常に高機能で比較的ドキュメントも充実していますが、それでも開発中に壁にぶつかることはあるでしょう。そんな時は、以下のリソースをあさってみてください。

  • 01

    公式ドキュメント (Your First Wagtail Site)

    まずはここから始めるのが王道です。ブログ機能を持ったサイトを一通り作るチュートリアルが用意されており、Wagtailの基本的な考え方や開発の流れを体系的に学べます。筆者は公式でめちゃ便利な機能が用意されているのを見逃して無駄で冗長な実装をしてしまったことが幾度となくあります。ドキュメントをくまなくチェックすることをお勧めします。

  • 02

    GitHub

    世界中の開発者がWagtailを使って何を作っているのか、他の人のコードから学ぶことも非常に有効です。また、公式リポジトリのIssueを覗けば、最新の議論や問題解決のヒントが見つかるかもしれません。筆者は正直とりあえずソースコード読みに行っちゃいます。

  • 03

    Wagtail Slack Workspace

    Wagtailには活発なSlackコミュニティがあります。開発中に遭遇したエラーや、実装方法の相談など、世界中の開発者に質問することができます。

Python開発者にとって最高なツール

真面目にやっている開発者としてはアウトプットもしたい。けどWordpressとかでただ文章を書くだけは時間がもったいない。そんな気分になるかもしれません。

Wagtailならコーディングの腕を磨きながらアウトプットもできる。一石二鳥っていう魅力もあります。

"是非一緒にWagtailでコンテンツを管理してみましょう"

もっと詳しく知りたい人へ(参考文献)

関連トピック

コメント (0)

まだコメントはありません。最初のコメントを残しませんか?

コメントを投稿

メールアドレスが公開されることはありません。必須項目には * が付いています