序章
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
、メールアドレスsammy@example.com
、パスワードadmin123
で管理者アカウントを作成します。 この情報を自分の好みで入力し、覚えやすい安全なパスワードを使用するようにしてください。
OutputUsername (leave blank to use 'root'): admin_user Email address: sammy@example.com
次に、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
を作成します。