Django の管理用アプリ

記事
IT・テクノロジー

Django の管理用アプリ

Web サービスや Web アプリを実装する場合、実装する Web サービスや Web アプリを設定したりする、管理用のアプリが必要になる場合がほとんどです。Django の場合は、この管理用のアプリの仕組みが標準で準備されているのも魅力の一つです。

Django の管理用のアプリ

Django のプロジェクトとアプリを作成すると、管理用のアプリのテンプレートも作成されます。 さらに作成したモデル(SQL データベースのテーブルの定義のクラス)を登録すると、テーブルの情報の一覧などを表示できるようになっています。

管理者のアカウントが必要

実際にアプリの管理を行うには管理者のアカウントが必要になります。 管理者のアカウント(ユーザー)は「スーパーユーザ」と呼ばれていて、コマンドラインから管理用のスクリプト「manage.py」を使って作成できます。

$ python3 manage.py createsuperuser
Username (leab blank to use 'os_user_name'): admin
Email address: sample_email@yourdomain.com
Password:
Password (again):
Superuser created successfully.

これで管理用のユーザが作成されました。 ユーザ名は特に指定しない場合は、OS で使用しているユーザー名になります。パスワードは、最低8文字以上で短いと警告メッセージがでます。

開発事は、シンプルなパスワードでも問題ではありませんが、インターネットに公開する場合は、不正なログインを防ぐ意味でも強固なパスワードを使う必要があります。

Web ブラウザで、「開発用の URL/admin」の URL を指定すると管理用のログイン画面が表示されるので、上で作成したユーザー名とパスワードを入れると管理者としてログインできるようになります。

標準で管理できる内容は?
モデル(データベースのテーブルの定義のクラス)を登録している場合は、データベースのテーブルの情報の表示や管理(追加、更新、削除)などができるように設定してくれます。PHP などを利用する場合によく利用される「phpmyadmin」のような感覚で利用できます。

ただし、「phpadmin」の場合は、SQL のデータベースの作成など、ほぼ必要なデーターベースの操作ができますが、この管理用のアプリの仕組みは、あくまで「アプリ」の管理という意味合いが強くなっています。 標準の SQLite を利用する場合は、プロジェクト・アプリを作成するとデータベースを自動的に作ってくれますが、MySQL など別の SQL のデータベースを利用する場合は、データベースの作成やデータベースのユーザーなどは別途作成する必要があります。

アプリの利用者のユーザ管理や、アプリの管理者などのグループの管理はこの管理アプリから利用することが可能で、こちらの方は、特に設定をしなくても予め標準設定で組み込まれています。

こうした仕組みが最初から準備されているのは、Web アプリや Web サービスを開発する際には大変助かる機能だと言えます。

カスタマイズもできる!
さらに便利なことに、カスタマイズもできるような設計になっています。 例えば、標準で設定されている管理アプリの画面のタイトルは、「Django administration」です。こうした文字列も簡単に置き換えることができますし、AdminSite のクラスを継承して、カスタムのクラスとしての拡張もできるようになっています。

文字列を置き換えるだけではなく、画面のカスタマイズまで可能になっています。 表示するテーブルのフィールドも必要に応じて変更できるので、使いこなせると、少ない労力で非常にクオリティの高い UI の実装が簡単にできるのは大きな魅力です。

Firebase も便利な仕組みで、Web アプリや Web サービスの実装に必要ないろいろな機能をサポートしていますが、Django も Firebase とは別の形で、Web アプリや、Web サービスに必要な機能を、UI も含めた形でサポートしています。

Python のプログラミングの知識は必要になりますが、Python のプログラミングができると、あとは「使い方」を覚えれば、本格的な Web アプリや Web サービスの構築は非常に効率的に行うことが可能です。

まとめ
この記事では、Django を利用して Web アプリや Web サービスを開発する際に必要になる事が多いアプリの管理機能について紹介してみました。 Firebase の場合は、Firebase コンソールで一通りの管理は可能ですが、どちらかというとバックエンドの管理ツールになっています。Django の場合、「アプリ」という形で、実装するアプリの一部として、管理ツールをサポートしています。

アプリに合わせてカスタマイズも可能なので、より実用的な Web アプリ、Web サービスを利用者、管理者のどちらからもサポートできるのは大きな強みになっています。

用途に合わせて、Firebase/React などの実装と、Django を使い分けることができれば、開発可能な Web アプリや Web サービスの幅も広がります!


サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す