Posted at

Mezzanineをはじめよう

More than 3 years have passed since last update.


Mezzanineとは

Python・Django製のCMSです。WordpressやMovable Typeのようなものです。サードパーティや自作のDjangoアプリとの連携が容易で、柔軟なサイト運営が可能です。

http://mezzanine.jupo.org/

日本での情報があまり無いのでひとまず導入部分を書いていきたいと思います。


はじめかた


準備

今回はPythonの開発環境があることを前提としますので、virtualenvやpyenvなどで環境を用意しておきます。

具体的にはpyenv local mypythonworkon mypythonをした状態ですが、MacなどのデフォルトのPython環境を使ってかまわないのであればこれらのコマンドは気にする必要はありません。


インストール

公式サイトに従って

$ pip install mezzanine

MezzanineをインストールするとDjangoなどの依存モジュールもインストールされます。自分の環境はDjango1.6.10がインストールされました。


プロジェクト作成

$ mezzanine-project myproject

自分の環境ではpyenvを使っていたのですがmezzanine-project

Not Foundと言われたのでsource ~/.pyenv/versions/mypython/bin/activateのようにactivateしたら実行できました。いくつか対話的に質問がされるので都度入力します。


開発用のDB作成

$ cd myproject

$ python manage.py createdb

ローカルのデフォルトの設定(local_settings.py)ではsqliteを使うようになっているのでもしかしたらsqliteがないと失敗するかもしれないです。自分の環境には入っていたのでよく確かめていませんが場合によってはbrew install sqlite3などで対応すると良いでしょう。 MySQLなどが使いたい場合はlocal_settings.pyを編集してください。


画面の確認

$ python manage.py runserver

これでデフォルトだと http://localhost:8000 にアクセスすれば画面の確認が出来ます。

49bb45d4-ff72-4d10-860c-99e2397b3478.png


テンプレートの編集

テンプレートを編集する際は一旦デフォルトのテンプレートをコピーして、それを編集するようにすると便利です。次のコマンドはMezzanineが用意しているテンプレートを自動で複製してくれます。

$ python manage.py collecttemplates

プロジェクトディレクトリにtemplatesディレクトリが追加されるのでその中を編集していくことになります。オプション等についてはpython manage.py collecttemplates --helpで確認できます。


外部テーマの導入

サードパーティ製のMezzanineテーマを導入する場合は、例えば http://thecodinghouse.in/themes/moderna/ 等からダウンロードしてきてプロジェクトディレクトリの下にDjangoアプリ(モジュール)として配置します。そしてsettings.pyのINSTALLED_APPSの先頭にモジュール名を追加します。先ほどのURLの場合だと下のようになります。

INSTALLED_APPS = (

"moderna", # 追加
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
# ...
)

6d4e8149-7de8-4811-b8c2-0573f6306db2.png

なお、先ほどtemplatesディレクトリを作成していた場合はデフォルトではそちらが優先されます。


拡張

基本的には以上の手順で簡単に導入できるはずです。サイト運営自体は他のCMSと特に変わりはないと思いますし、機能の拡張も通常のDjangoプロジェクト同様にモジュール等を作ってINSTALLED_APPSに追加するといったような流れになります。


所感

ここまでで導入の説明は終わりですが、余談としてMezzanineを使ってみた感想を少し書かせてもらいます。


柔軟性

正直WordpressやMovable Typeなど有名どころのCMSをあまり使ったことが無くて比較はできないのですが、Djangoアプリを追加することでとても柔軟にサイトを制作できます。なのでただのブログ用途だけでなく色々使えそうです。


デフォルトの設定が豊富

インストールしたときに一番感動したのはインストールした段階で既に多くの設定ファイルが用意されていたことでした。たとえばrequirements.txtや.gitignoreなどプロジェクトの開発時に必ず用意するであろうものや、crontabやsupervisor.confなど運用時に必要になるものがはじめから入っています。とくにfabfile.pyは一通りのコマンドが用意されていてFabricを導入するだけでデプロイスクリプトなどを一から考える必要もありません。


シェア

(データを持っていないのであまり勝手なことは言えないですが)

日本での情報はまだまだ少なく圧倒的にWordpressがシェアを持っていると思いますが、最近ではPythonを使う人も以前よりは多くなった印象もあるので、柔軟性のあるCMSということで少しずつ導入されるのではないかと個人的には思います。