【Django入門】adminサイトの作り方からカスタマイズまで!

今回は、Djangoのadminサイトの使い方について解説します。

作ったWebサイトをブラウザから管理する場面では、adminサイトは無くてはならない存在です。

この記事では、

・adminサイトとは何か
・adminサイトの作り方

について解説します。さらに、

・adminサイトのカスタマイズ方法

を通して、Djangoでadminサイトを利用する方法を解説します。

adminサイトとは

まずはadminサイトがどういったものなのかを知っておきましょう!

adminサイトとは、管理者だけが入ることの出来る、Webサイト(Djangoアプリケーション)の情報をブラウザから編集出来るページのことです。

管理ページや管理サイト、管理画面と言われることもあります。

ちなみにadminとはadministrator(アドミニストレータ)の略で、管理者という意味になります。

adminサイトがあることによって、ページの更新がとても楽になります。

adminサイトを作ろう

これからは実際にadminサイトを使ってページの管理をしてみましょう。

プロジェクトを作成したいディレクトリに行き、コンソールや端末で以下のコマンドを実行します。

mySiteは自分の好きなプロジェクト名で構いません。

実行すると、mySiteというディレクトリが出来上がります。

このディレクトリに必要なファイルが全て含まれています。

さらに今出来上がったディレクトリ(mySite)に移動して、以下のコマンドを実行します。

このコマンドを実行すると、プロジェクト内にmyappというWebアプリのテンプレートができます。

これで、準備は完了です。

開発サーバーを立ち上げよう

ターミナルでmySiteディレクトリに行き、このコマンドを実行しましょう。

これで、開発用のサーバーが起動します。

※このときターミナルには以下のような表示が出ます。

http://localhost:8000 にブラウザでアクセスして確認してみましょう。

このような表示が出れば、開発用サーバーの起動は完了です。

※Djangoのバージョンが新しいと別の表示になるかもしれませんが、基本的には同じ機能です。

adminサイトに入ろう

起動が出来たら、実際にadminサイトに入ってみましょう。

アドレスの http://localhost:8000/admin にアクセスしてみましょう。

UsernameとPassword
が求められるページに移動したと思います。

しかし、まだログインすることは出来ません。

ユーザー名とパスワードを設定する必要があります。

このコマンドを実行しましょう。

このコマンドを実行すると、ユーザー名とEmailアドレス、パスワードを求められます。

Emailアドレスは入力しなくても構いませんが、ユーザー名とパスワードは必須です。

パスワードは短すぎるとエラーが出るので、エラーが出ない程度に長いものを使用しましょう。

これで準備が終わりました。

先程のadminサイトにアクセスして、ログインすることができるのを確かめましょう。

無事にログイン出来ましたか?

ここからはadminサイトを自分の管理するWebアプリケーションに向けてカスタマイズしていきましょう!

adminサイトのパスワードを設定しよう

ここで一旦、adminサイトのパスワードの設定方法について確認しておきましょう。

先程コマンドを入力して設定したパスワードを忘れてしまうことがあるかもしれません。

その場合は、Django shellを起動して、直接パスワードを変えることが出来ます。

慣例的にはパスワードを確認するよりも、パスワードを変えてしまうことのほうが多いと思います。

こちらのコマンドを実行しましょう。

これでDjango shellが起動します。

Django shell上でこのような命令を送ってみましょう。

user.set_password関数の引数に、再設定したいパスワードを渡すことで、パスワードが設定出来ます。

adminサイトのカスタマイズ

adminサイトは自分の作るアプリケーションに合わせて、カスタマイズをしていくことが出来ます。

models.pyを編集する

models.pyはDjangoのベースとも言えるシステムの基礎的なファイルです。

このmodels.pyでは、主にデータベースを扱うことが出来ます。

詳しくはこちらをご覧ください。

【Django入門】Djangoアプリの設計哲学!MTVモデルをmodelsを通して学ぼう!
更新日 : 2019年1月29日

myapp/models.pyに、このような編集をします。

このコードは、人名を定義するPersonクラスを定義しています。

ここで作ったPersonというクラスを、myapp/admin.pyにも反映させます。

これで、adminサイトにmyappというウェブアプリケーションのPersonというモデルを登録することが出来ました。

更新してみると、追加されていることがわかるかと思います。

adminサイトにCSSを適用する

adminサイトのレイアウトは既に決まっていますが、自分でカスタマイズすることも出来ます。

ここではDjangoの中でも重要なtemplateという概念についても触れていきます。

templateについては、このページをご覧ください!

【Django入門】templateとHTMLを使ってWebページを表示しよう
更新日 : 2019年5月13日

templatesというディレクトリをmanage.pyと同じ階層に作り、settings.pyにこのような変更を加えます。

ここではDIRSに、templatesというディレクトリを登録します。

ここで必要となるファイルを入れるために、adminディレクトリをtemplates配下に作っておきます。

次に、Django本体配下のdjango/contrib/admin/templates/admin/base_site.htmlを、templates/adminにコピーします。

現在のディレクトリ階層はこのようになっています。

このbase_site.htmlを、このように編集して保存しましょう。

extrastyleというブロックで囲み、headerというIDをもつ部分の色を指定しましょう。

これで、指定した色に変わります。

まとめ

この記事ではadminサイトについて紹介してきました。

adminサイトを使いこなすには、models.pyやデータベースの扱いについても詳しく知る必要があります。

ですが、adminサイトを利用してウェブアプリケーションを運用することは大きなアドバンテージになることが分かっていただけたかと思います。

ぜひ皆さんもadminサイトを利用してみてください。

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

ryo

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説