Django管理インターフェースの有効化と接続方法
はじめに
もしDjango Developmentシリーズに参加しているなら、Djangoアプリケーションを開始し、アプリケーションをMySQLに接続し、ブログWebアプリケーション内の投稿とコメントのデータのデータベースモデルを作成しているはずです。
このチュートリアルでは、ブログウェブサイトを管理するためにDjangoの管理サイトに接続して有効にします。Djangoの管理サイトには、信頼できる人々がウェブサイトのコンテンツを管理するために設計されたユーザーインターフェイスが既に組み込まれています。
Djangoの公式ドキュメントによると、組織内での利用には理想的ですが、自動生成されたDjango管理画面をベースにWebアプリケーションを構築することはおすすめされていません。もしインタフェースがよりプロセス指向であるか、データベーステーブルやフィールドの実装の詳細を抽象化する必要がある場合は、管理画面側のために独自のビューを記述することが最善です。
前提条件
このチュートリアルはDjango開発シリーズの一部であり、そのシリーズの続きです。
もしこのシリーズについて追いかけてきていない場合、以下の仮定を行っています。
- You have Django version 4 or higher installed.
- You have connected your Django app to a database. We are using MySQL, and you can achieve this connection by following part two of the Django series, “How To Create a Django App and Connect it to a Database.”
- You are working with a Unix-based operating system, preferably an Ubuntu 22.04 cloud server as this is the system we have tested on. If you would like to set up Django on a similar environment, please refer to our tutorial, “How To Install Django and Set Up a Development Environment on Ubuntu 22.04.
このチュートリアルは主にDjango管理画面に焦点を当てているため、設定が若干異なっている場合でも、おそらく追いつくことができるでしょう。
ステップ1:管理者を有効にします。
PythonとDjangoで作業を始めるときは、Pythonの仮想環境をアクティブにし、アプリのルートディレクトリに移動する必要があります。このシリーズに従っている場合、以下のように入力することでこれを実現できます。
- cd ~/my_blog_app
- . env/bin/activate
Django Adminを有効にするためには、settings.pyファイルのINSTALLED_APPSリストにアプリが含まれていることを確認する必要があります。
設定ファイルのディレクトリに移動します。 (Settei fairu no direkutori ni idō shimasu.)
- cd ~/my_blog_app/blog/blog/
ここから、settings.pyファイルを開いてください。もしそのファイルがまだなければ、テキストエディタ(nanoのような)を使って、django.contrib.adminをINSTALLED_APPSのリストに追加してください。
- nano settings.py
以下のファイルの INSTALLED_APPS セクションは、次のように似ている必要があります。私たちのアプリケーション ‘blogsite’ がリストの一番上にある場合、それを確認してください。しかし、別の名前のアプリを作成した場合は、そのアプリがこちらのファイルにリストされていることを確認してください。
...
# Application definition
INSTALLED_APPS = [
'blogsite',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
...
変更を加えた場合は、必ずファイルを保存して閉じてください。nanoでは、CTRLとXを押し、続けてYを押し、最後にENTERを押すことでこれが可能です。
私たちは、再びnanoまたは他のテキストエディタでurls.pyファイルを開くことができます。
- nano urls.py
上部にコメントがある状態で、ファイルは以下のようになるべきです。
…
"""
from django.contrib import admin
from django.urls import path
urlpatterns = [
path('admin/', admin.site.urls),
]
もしファイルが上記と異なっている場合、上の行をurls.pyファイルにコピー&ペーストしてください。
settings.pyとurls.pyファイルに適切なコードが含まれていることを確認したので、私たちのDjangoウェブプロジェクトでは、管理者モデルと管理者ユーザーインターフェースにアクセスできるようになりました。
ステップ2 — Adminがインストールされているアプリであることを確認してください。
新しく追加された「Admin models」を認識するために、次はモデルをデータベースに移行する必要があります。
manage.pyファイルが置かれているディレクトリに移動してください。
- cd ~/my_blog_app/blog
モデルに変更を加えた場合は、いつでも移行のコマンドを実行することを忘れないでください。
- python manage.py migrate
もし上記のファイルに何の変更も加えなかった場合、マイグレーションコマンドを実行すると以下のような出力が得られるはずです。
Operations to perform: Apply all migrations: admin, auth, blogsite, contenttypes, sessions Running migrations: No migrations to apply.
それ以外の場合は、出力には、Djangoが私たちのアプリをサポートするために必要なマイグレーションを行ったことが示されるべきです。
以下のコマンドを実行することで、サーバーを起動できます。IPアドレスの代わりに0.0.0.0を使用することができます。
- python manage.py runserver 0.0.0.0:8000
選択したブラウザで、管理パネルのURLに移動してください。サーバーのIPアドレスを入力することを忘れないようにしてください。
http://your-server-ip:8000/admin/
あなたは、このようなログイン画面を受け取ることになります。
この画面にたどり着くことで、管理者アプリが正常に有効化されたことが分かります。
私たちはアプリを有効にしましたが、まだDjangoの管理アカウントを設定していないかもしれません。次のステップでログインするために管理アカウントを作成することができます。
ステップ3: 管理者のスーパーユーザーアカウントを作成する
もし既に管理者アカウントを設定して管理ページにログインできる場合、この手順はスキップしても構いません。
新しいターミナルを開いてサーバーに接続するか、Djangoアプリを無効にするためにCTRLとCを押してください。これにより、サーバーターミナルのプログラミング環境で作業できます。
Djangoは、manage.pyファイルを実行してスーパーユーザーアカウントを生成することができます。これにより、スーパーユーザーの作成プロセスを開始することができます。
- python manage.py createsuperuser
それを行うと、ユーザー名、メール、パスワードの詳細を入力するよう促されます。このチュートリアルでは、ユーザー名をadmin_user、メールアドレスをsammy@example.com、パスワードをadmin123として管理者アカウントを作成します。この情報を自分の好みで入力し、覚えやすい安全なパスワードを使用してください。
Username (leave blank to use ‘root’): admin_user Email address: sammy@example.com
パスワード:のプロンプトが表示されたら、パスワードを二度入力してください。パスワードを入力する際には、キーストロークの出力は表示されません。各プロンプトの後でEnterキーを押して、パスワードを確認してください。
Password: Password (again):
この時点で、ユーザー名がadmin_userでパスワードがadmin123の管理者アカウントを持っています。
ログインして、管理ページに存在するものを調査しましょう。
必要な場合は、Djangoアプリを再度”python manage.py runserver 0.0.0.0:8000″と実行し、もう一度”http://your-server-ip:8000/admin/”のURLに移動して管理者ログインページにアクセスしてください。その後、作成したユーザー名とパスワードでログインしてください。
成功したログインの後、次のページが表示されます。
次に、私たちはブログアプリと管理パネルを接続する作業に取り組む必要があります。
ステップ4 – 投稿とコメントのURLパターンを作成してください。
前のステップでは、管理者インターフェースに正常にログインできましたが、おそらく私たちのブログアプリはまだ利用できないことに気付いたかもしれません。管理者インターフェースにブログアプリを表示させるためには、関連するモデルである投稿とコメントを追加して登録する必要があります。
これを行うために、ブログサイトのディレクトリにurls.pyという空のファイルを作成します。
- touch ~/my_blog_app/blog/blogsite/urls.py
このファイルでは、ブログアプリケーションにURLパターンを追加し、管理インターフェースからアクセスできるようにします。
私たちが作成したurls.pyファイルの場所に移動してください。
- cd ~/my_blog_app/blog/blogsite/
例えば、そのファイルをnanoで開いてください。
- nano urls.py
ファイルに次のコードを追加してください。
urls.pyを日本語で言い換えると、以下のようになります:
URL設定ファイル
from django.urls import path
from . import views
urlpatterns = [
path('$/', views.posts, name='posts'),
path('$/', views.comments, name='comments'),
]
私たちのアプリケーションが投稿とコメントのビューにアクセスするために必要なURLパターンの表現です。まだそのビューを作成していませんが、シリーズの後半で説明します。
ステップ5 — ブログアプリを管理者に接続します。
私たちのブログを管理画面に接続することで、管理ダッシュボード内に投稿とコメントの両方のリンクを表示することができます。現時点では、ダッシュボードではグループとユーザーのリンクのみが表示されています。
両者を接続するためには、ブログサイトの管理ファイルに私たちの「投稿」モデルと「コメント」モデルを登録する必要があります。
ブログサイトのディレクトリに移動してください。
- cd ~/my_blog_app/blog/blogsite
その後、お好きなテキストエディタでadmin.pyファイルを開いてください。
- nano admin.py
ファイルには、インポート文とコメントが挿入されます。
from django.contrib import admin
# Register your models here.
私たちのアプリをサポートするために、次のコードが含まれるようにファイルを編集してください。
admin.pyの内容を日本語で言い換える場合、以下のようになります:
・管理者.py
・アドミン.py
・管理.py
・管理者用ファイル.py
・管理担当のファイル.py
from django.contrib import admin
from blogsite.models import Post
from blogsite.models import Comment
admin.site.register(Post)
admin.site.register(Comment)
ファイルに満足している場合は、保存して終了してください。
現在、管理パネル内に投稿モデルとコメントモデルが登録されました。これにより、管理者インターフェースはこれらのモデルを認識し、管理者ダッシュボードを表示しているユーザーに表示することができます。
ステップ6 – 管理者にブログアプリが追加されていることを確認する。
関連するPythonコードを追加したら、サーバーを実行してください。ログインしていない場合は、http://your-server-ip:8000/admin を開き、管理者としてログインしてください。このチュートリアルでは、ユーザー名admin_userとパスワードadmin123でログインしています。
ログインしたので、以下のウェブページが表示されるはずです。もし前と変わらない場合は、ブラウザをリフレッシュする必要があるかもしれません。
これにより、アプリやブログサイトをDjangoの管理者ダッシュボードに接続できたことが確認されました。
アプリのテストが完了したら、Djangoサーバーを停止するためにCTRL + Cを押すことができます。これにより、プログラミング環境に戻ることができます。
Python環境を終了する準備ができたら、deactivateコマンドを実行できます。
- deactivate
プログラミング環境を無効にすると、ターミナルのコマンドプロンプトに戻ります。
結論
このチュートリアルでは、管理画面を正常に有効化し、管理者ログインを作成し、投稿とコメントのモデルを管理画面に登録しました。
Djangoの管理画面では、ブログの投稿を作成し、コメントを監視することができます。
次回のシリーズでは、ブログアプリケーションのビューを作成します。