「強固なセキュリティのCMSをもとにサイトを制作したい」
「Python製のCMSを探している」
このような場合には、Mezzanineがオススメです。
この記事では、Python製CMSのMezzanineについて解説しています。
本記事の内容
- Mezzanineとは?
- Mezzanineのシステム要件
- Mezzanineのインストール
- Mezzanineの動作確認
それでは、上記に沿って解説していきます。
Mezzanineとは?
Mezzanineは、Python製のCMSです。
DjangoをWebアプリケーションフレームワークとしています。
簡単に言うと、MezzanineはWordPressのようなモノです。
WordPressは、PHPで開発されています。
それに対して、MezzanineはPython製です。
あと、以下の点でも違いがあります。
WordPressは、プラグインを追加する前提です。
プラグインを追加することにより、機能追加を実現しています。
それとは異なり、Mezzanineは機能追加の必要はありません。
デフォルトで必要となる機能を提供しています。
機能が足りない場合は、自分で開発してくれというスタンスです。
その意味では、WordPressのように開放された感じではありません。
どちらかと言うと、閉じたような仕組みです。
アップル製品のような印象を受けます。
だからこそ、セキュリティはその分だけ強固と言えるでしょう。
以上、Mezzanineについて説明しました。
Mezzanineのシステム要件
現時点(2022年6月末)でのMezzanineの最新バージョンは、6.0.0となります。
この最新バージョンは、2022年5月12日にリリースされています。
サポートOSに関しては、以下を含むクロスプラットフォーム対応です。
- Windows
- macOS
- Linux
サポート対象となるPythonのバージョンは、以下となっています。
- Python 3.7
- Python 3.8
- Python 3.9
- Python 3.10
これは、完璧なサポート状況と言えます。
Mezzanineは、以下のPython公式開発サイクルに完全に準じています。
バージョン | リリース日 | サポート期限 |
3.6 | 2016年12月23日 | 2021年12月23日 |
3.7 | 2018年6月27日 | 2023年6月27日 |
3.8 | 2019年10月14日 | 2024年10月 |
3.9 | 2020年10月5日 | 2025年10月 |
3.10 | 2021年10月4日 | 2026年10月 |
ここまで適切に対応するライブラリは、なかなかありません。
実際は、サポート対象外でも動くのは動きます。
だから、実質的にはサポート状況はそれほど重要なことではありません。
しかし、Python公式開発サイクルに合わせるという姿勢が素晴らしいです。
こういう姿勢のプロジェクトチームであれば、それだけで安心できます。
よって、Mezzanineは安心して使い続けることが期待できます。
少し話が逸れましたが、システム要件をまとめておきます。
Mezzanineのシステム要件は、Python 3.7以降だけと言えます。
以上、Mezzanineのシステム要件を説明しました。
次は、Mezzanineのインストールを説明します。
Mezzanineのインストール
検証は、次のバージョンのPythonで行います。
$ python -V Python 3.10.2
まずは、現状のインストール済みパッケージを確認しておきます。
$ pip list Package Version ---------- ------- pip 22.1.2 setuptools 62.6.0 wheel 0.36.2
次にするべきことは、pipとsetuptoolsの更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。
python -m pip install --upgrade pip setuptools
では、Mezzanineのインストールです。
Mezzanineのインストールは、以下のコマンドとなります。
pip install Mezzanine
Mezzanineのインストールは、それほど時間はかかりません。
終了したら、どんなパッケージがインストールされたのかを確認します。
$ pip list Package Version ----------------------- ----------- asgiref 3.5.2 beautifulsoup4 4.11.1 bleach 5.0.1 certifi 2022.6.15 chardet 5.0.0 charset-normalizer 2.0.12 Django 4.0.5 django-contrib-comments 2.2.0 filebrowser-safe 1.1.1 grappelli-safe 1.1.1 idna 3.3 Mezzanine 6.0.0 oauthlib 3.2.0 Pillow 9.1.1 pip 22.1.2 pytz 2022.1 pytz-deprecation-shim 0.1.0.post0 requests 2.28.0 requests-oauthlib 1.3.1 setuptools 62.6.0 six 1.16.0 soupsieve 2.3.2.post1 sqlparse 0.4.2 tinycss2 1.1.1 tzdata 2022.1 tzlocal 4.2 urllib3 1.26.9 webencodings 0.5.1 wheel 0.36.2
それなりに多くのパッケージに依存しています。
Djangoに依存していることが確認できます。
以上、Mezzanineのインストールを説明しました。
次は、Mezzanineの動作確認を説明します。
Mezzanineの動作確認
まず、次のコマンドが動くかどうかを確かめます。
$ mezzanine-project --version 4.0.5
なお、バージョンはMezzanineではなくDjangoのバージョンです。
Mezzanineは、WebアプリケーションフレームワークにDjangoを採用しています。
このコマンドが動けば、Mezzanineのプロジェクトを作成できます。
次のコマンドでプロジェクトを作成します。
mezzanine-project プロジェクト名(ディレクトリ名)
今回は、「test_project」という名前のプロジェクトを作成します。
$ mezzanine-project test_project
実行したら、次のような中身を持ったディレクトリが作成されます。
対象ディレクトリに移動します。
$ cd test_project
プロジェクトを起動する前に、DB初期化を行います。
デフォルトであれば、SQLiteをデータベースに利用します。
python manage.py createdb
実行すると、次のように表示されます。
$ python manage.py createdb Operations to perform: Apply all migrations: admin, auth, blog, conf, contenttypes, core, django_comments, forms, galleries, generic, pages, redirects, sessions, sites Running migrations: Applying contenttypes.0001_initial... OK Applying auth.0001_initial... OK Applying admin.0001_initial... OK 〜省略〜 A site record is required. Please enter the domain and optional port in the format 'domain:port'. For example 'localhost:8000' or 'www.example.com'. Hit enter to use the default (127.0.0.1:8000): 【Enter】 Creating default site record: 127.0.0.1:8000 ... Creating default account ... Username (leave blank to use 'ログイン中user'): ■■■【Enter】 Email address: 【Enter】 Password: ●●●【Enter】 Password (again): ●●●【Enter】 Superuser created successfully. Installed 2 object(s) from 1 fixture(s) Would you like to install some initial demo pages? Eg: About us, Contact form, Gallery. (yes/no): yes【Enter】 Creating demo pages: About us, Contact form, Gallery ... Installed 16 object(s) from 3 fixture(s)
途中でアカウント情報(サイト管理者)を問われます。
上記で【Enter】と記載してる箇所です。
- Username(デフォルトも可)
- Password
- Would you like to install some initial demo pages?
最低でも上記は入力しましょう。
それ以外は、デフォルト(そのままEnter)で良いでしょう。
DB初期化が完了したら、プロジェクト(サイト)を起動します。
そのコマンドは、以下となります。
python manage.py runserver
実際に実行した結果は、以下。
$ python manage.py runserver Watching for file changes with StatReloader ..... _d^^^^^^^^^b_ .d'' ``b. .p' `q. .d' `b. .d' `b. * Mezzanine 6.0.0 :: :: * Django 4.0.5 :: M E Z Z A N I N E :: * Python 3.10.2 :: :: * SQLite 3.33.0 `p. .q' * Linux 5.8.0-63-generic `p. .q' `b. .d' `q.. ..p' ^q........p^ '''' Performing system checks... System check identified no issues (0 silenced). June 28, 2022 - 09:47:55 Django version 4.0.5, using settings 'test_project.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CONTROL-C. [28/Jun/2022 09:47:58] "GET / HTTP/1.1" 200 6907 [28/Jun/2022 09:47:58] "GET /static/css/mezzanine.css HTTP/1.1" 200 10785 [28/Jun/2022 09:47:58] "GET /static/css/bootstrap-theme.css HTTP/1.1" 200 21368 [28/Jun/2022 09:47:58] "GET /static/css/bootstrap.css HTTP/1.1" 200 132546 [28/Jun/2022 09:47:58] "GET /static/js/bootstrap-extras.js HTTP/1.1" 200 2841 [28/Jun/2022 09:47:58] "GET /static/js/bootstrap.js HTTP/1.1" 200 60681 [28/Jun/2022 09:47:58] "GET /static/mezzanine/js/jquery-3.4.1.js HTTP/1.1" 200 280364 [28/Jun/2022 09:47:58] "GET /static/img/favicon.ico HTTP/1.1" 200 318
上記のように表示されれば、指定されたURLにアクセスします。
「Congratulations!」と祝ってくれています。
管理画面にログインするためには、次のリンクをクリックします。
クリックすると、次のようなログインフォームが表示されます。
ここでは、DB初期化の際に入力したアカウント情報を用います。
Interfaceは、「Admin」のままでよいです。
ログインに成功すると、次のような画面が表示されます。
これは、Mezzanineの管理画面です。
あとは、管理画面で設定していくことになります。
Mezzanineの動作確認としては、これでOKでしょう。
以上、Mezzanineの動作確認を説明しました。