Django管理インターフェースを有効にして接続する方法
序章
Django開発シリーズをフォローしている場合は、Djangoアプリケーションを起動し、アプリケーションをMySQLに接続して、PostsおよびCommentsのデータベースモデルを作成しました。 ]ブログWebアプリケーション内のデータ。
このチュートリアルでは、 Django管理サイトに接続して有効にし、ブログWebサイトを管理できるようにします。 Django管理サイトには、あなたや他の信頼できる個人がWebサイトのコンテンツを管理できるように設計されたユーザーインターフェイスがあらかじめ構築されています。
Djangoの公式ドキュメントでは、これは組織の内部使用には理想的ですが、自動生成されたDjango管理インターフェースを中心にWebアプリケーションを構築することは推奨されないことを指摘していることは注目に値します。 インターフェイスをよりプロセス中心にする必要がある場合、またはデータベーステーブルとフィールドの実装の詳細を抽象化することがわかった場合は、管理者側用に独自のビューを作成するのが最適です。
前提条件
このチュートリアルはDjango開発シリーズの一部であり、そのシリーズの続きです。
このシリーズに従わなかった場合は、次のことを前提としています。
- Djangoバージョン3以降がインストールされています。
- Djangoアプリをデータベースに接続しました。 MySQLを使用しています。この接続は、Djangoシリーズのパート2「Djangoアプリを作成してデータベースに接続する方法」に従うことで実現できます。
- Unixベースのオペレーティングシステム、できればUbuntu 20.04クラウドサーバーを使用しています。これは、私たちがテストしたシステムです。 同様の環境でDjangoをセットアップする場合は、チュートリアル「 Ubuntu20.04でDjangoをインストールして開発環境をセットアップする方法」を参照してください。
このチュートリアルは主にDjango管理インターフェースを扱っているため、設定が多少異なる場合でも従うことができる場合があります。
ステップ1—管理者を有効にする
PythonとDjangoで作業を開始するときはいつでも、Python仮想環境をアクティブにして、アプリのルートディレクトリに移動する必要があります。 シリーズをフォローしている場合は、次のように入力することでこれを実現できます。
cd ~/my_blog_app . env/bin/activate
Django Adminを有効にするには、アプリがsettings.pyファイルのINSTALLED_APPSのリストに含まれていることを確認する必要があります。
設定ファイルのディレクトリに移動します。
cd ~/my_blog_app/blog/blog/
ここから、settings.pyファイルを開きます。 まだ存在しない場合は、nanoなどのテキストエディタを使用して、django.contrib.adminをINSTALLED_APPSのリストに追加します。
nano settings.py
ファイルのINSTALLED_APPSセクションは、以下のファイルのようになっているはずです。 リストのアプリは一番上にある'blogsite',ですが、別の名前のアプリを作成した場合は、そのアプリが図のようにこのファイルにリストされていることを確認してください。
settings.py
...
# 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の順に入力してこれを行うことができます。
これで、urls.pyファイルをnanoまたは別のテキストエディタで開くことができます。
nano urls.py
上部のコメントの下で、ファイルは次のようになります。
urls.py
…
"""
from django.contrib import admin
from django.urls import path
urlpatterns = [
path('admin/', admin.site.urls),
]
ファイルが上記のものと異なる場合は、上記の行をコピーしてurls.pyファイルに貼り付けてください。
DjangoWebプロジェクトのsettings.pyファイルとurls.pyファイルに適切なコードが含まれていることを確認したので、アプリケーションが管理モデルと管理ユーザーインターフェイスにアクセスできるようになります。
ステップ2—管理者がインストール済みアプリであることを確認します
次に、モデルをデータベースに移行して、新しく追加された管理モデルを取得できるようにする必要があります。
manage.pyファイルがあるディレクトリに移動します。
cd ~/my_blog_app/blog
modelsに変更を加えるときは、必ずmigrateコマンドを実行してください。
python manage.py migrate
上記のファイルに変更を加えなかった場合、migrateコマンドを実行すると、次のような出力が表示されます。
OutputOperations to perform: Apply all migrations: admin, auth, blogsite, contenttypes, sessions Running migrations: No migrations to apply.
それ以外の場合、出力は、Djangoがアプリをサポートするために必要な移行を行ったことを示しているはずです。
これで、次のコマンドを実行してサーバーを起動できます。 0.0.0.0を自分のIPアドレスに置き換えることができます。
python manage.py runserver 0.0.0.0:8000
次に、選択したブラウザで管理パネルのURLに移動します。 サーバーのIPアドレスを必ず入力してください。
http://your-server-ip:8000/admin/
このようなログイン画面が表示されます。
この画面が表示されると、管理アプリが正常に有効になったことを確認できます。
アプリを有効にしましたが、Django管理アカウントをまだ設定していない可能性があります。 次のステップでログインするために、管理者アカウントを作成できます。
ステップ3—管理者スーパーユーザーアカウントを作成する
すでに管理者アカウントを設定していて、管理者ページにログインできる場合は、この手順をスキップできます。
新しいターミナルを開いてサーバーに接続するか、CTRLとCを押してDjangoアプリを無効にして、サーバーターミナルのプログラミング環境で作業できるようにします。
Djangoを使用すると、スーパーユーザーアカウントを生成できます。これは、manage.pyファイルを実行してスーパーユーザーの作成プロセスを開始することで実行できます。
python manage.py createsuperuser
そうすると、ユーザー名、メールアドレス、パスワードの詳細を入力するよう求められます。 このチュートリアルでは、ユーザー名admin_user、メールアドレス[email protected]、パスワードadmin123で管理者アカウントを作成します。 この情報を自分の好みで入力し、覚えやすい安全なパスワードを使用するようにしてください。
OutputUsername (leave blank to use 'root'): admin_user Email address: [email protected]
次に、Password:プロンプトが表示されたら、パスワードを2回入力します。 パスワードを入力しても、パスワードのキーストロークからの出力は受信されません。 各プロンプトの後にEnterキーを押して、パスワードを確認します。
OutputPassword: Password (again):
この時点で、ユーザー名admin_userとパスワードadmin123の管理者アカウントができました。
ログインして、管理ページに何が存在するかを調べてみましょう。
必要に応じて、python manage.py runserver 0.0.0.0:8000を使用してDjangoアプリを再度実行し、もう一度URL http://your-server-ip:8000/admin/に移動して、管理者ログインページにアクセスします。 次に、作成したユーザー名とパスワードおよびパスワードを使用してログインします。
ログインに成功すると、次のページが表示されます。
次に、ブログアプリを管理パネルに接続する作業を行う必要があります。
ステップ4—投稿とコメントのURLパターンを作成する
前の手順では、管理インターフェースに正常にログインしましたが、ブログアプリがまだ利用できないことに気付いたかもしれません。 管理インターフェースにブログアプリを追加するには、関連するモデルPostおよびCommentに追加して登録する必要があります。
これを行うには、次のように、blogsiteディレクトリに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
from django.urls import path
from . import views
urlpatterns = [
path('$/', views.posts, name='posts'),
path('$/', views.comments, name='comments'),
]
これらは、アプリケーションがPostsおよびCommentsのviewsにアクセスできるようにするために必要なURLパターン式です。 これらのviewsはまだ作成していませんが、シリーズの後半で説明します。
ステップ5—ブログアプリを管理者に接続する
ブログを管理インターフェースに接続すると、管理ダッシュボード内にPostsとCommentsの両方のリンクが表示されます。 現在、ダッシュボードにはGroupsとUsersのリンクのみが表示されています。
2つを接続するには、[X51X]モデルとCommentsモデルをblogsiteの管理ファイル内に登録する必要があります。
blogsiteディレクトリに移動します。
cd ~/my_blog_app/blog/blogsite
次に、選択したテキストエディタでadmin.pyファイルを開きます。
nano admin.py
ファイルには、インポートステートメントとコメントが入力されます。
admin.py
from django.contrib import admin # Register your models here.
アプリをサポートするには、次のコードが含まれるようにファイルを編集する必要があります。
admin.py
from django.contrib import admin from blogsite.models import Post from blogsite.models import Comment admin.site.register(Post) admin.site.register(Comment)
ファイルに問題がなければ、保存して終了します。
これで、管理パネル内にPostおよびCommentモデルが登録されました。 これにより、管理インターフェースがこれらのモデルを取得し、ログインして管理ダッシュボードを表示しているユーザーに表示できるようになります。
ステップ6—ブログアプリが管理者に追加されたことを確認します
関連するPythonコードを追加したので、サーバーを実行します。 http://your-server-ip:8000/adminを開き、まだログインしていない場合は、資格情報を使用して管理者にログインします。 このチュートリアルでは、ユーザー名admin_userとパスワードadmin123でログインしています。
ログインしたので、次のWebページが表示されます。 以前から変更されていない場合は、ブラウザを更新する必要がある場合があります。
これで、アプリblogsiteがDjango管理ダッシュボードに接続されたことを確認します。
アプリのテストが終了したら、CTRL + Cを押して、Djangoサーバーの実行を停止できます。 これにより、プログラミング環境に戻ります。
Python環境を離れる準備ができたら、deactivateコマンドを実行できます。
deactivate
プログラミング環境を非アクティブ化すると、ターミナルコマンドプロンプトに戻ります。
結論
このチュートリアルでは、管理インターフェイスを正常に有効にし、管理者ログインを作成し、PostおよびCommentモデルを管理者に登録しました。
Django管理インターフェースは、ブログで投稿を作成したりコメントを監視したりする方法です。
シリーズでは、ブログアプリケーション用のviewsを作成します。