Django管理インターフェイスを有効にして接続する方法

前書き

これまで、このDjangoシリーズでは、Djangoアプリケーションを起動し、アプリケーションをMySQLに接続し、ブログWebアプリケーション内の `+ Posts `および ` Comments +`データのデータベースモデルを作成しました。

このチュートリアルでは、https://docs.djangoproject.com/en/1.11/ref/contrib/admin/ [Django管理サイト]に接続して有効にし、ブログのWebサイトを管理できるようにします。 Django管理サイトには、ユーザーと他の信頼できる個人がWebサイトのコンテンツを管理できるように設計されたユーザーインターフェイスがあらかじめ組み込まれています。

Djangoの公式ドキュメントでは、これは組織の内部使用には理想的ですが、自動生成されたDjango管理インターフェースを中心にWebアプリケーションを構築することは推奨されないことを指摘する価値があります。 インターフェイスをよりプロセス中心にする必要がある場合、またはデータベースのテーブルとフィールドの実装の詳細を抽象化することが証明されている場合は、管理側用に独自のビューを作成するのが最適です。

前提条件

このチュートリアルは、https://www.digitalocean.com/community/tutorial_series/django-development [Django Development]シリーズの一部です。

このチュートリアルを完了するには、https://www.digitalocean.com/community/tutorials/how-to-install-django-and-set-up-a-development-environment-on-ubuntu-16-04が必要です。 [Djangoをインストールして開発環境をセットアップ]、https://www.digitalocean.com/community/tutorials/how-to-create-a-django-app-and-connect-it-to-a-database [created DjangoアプリをMySQLデータベースに接続する]、https://www.digitalocean.com/community/tutorials/how-to-create-django-models [Djangoモデルを作成する]。

ステップ1-管理者を有効にする

最初に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 +`セクションは次のようになります。

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または別のテキストエディターで、 `+ urls.py +`ファイルを開くことができます。

nano urls.py

ファイルは次のようになります。

urls.py

...
from django.urls import path
from django.contrib import admin
urlpatterns = [
   path('admin/', admin.site.urls),
]

Django 2.0のリリース以降、新しいhttps://docs.djangoproject.com/en/2.0/topics/http/urls/ [ django.url.path()]関数は、 `+ url()`関数を使用してURLパターンを作成する古い方法を改善したものです。 ` path()+`関数は、よりシンプルで読みやすいURLルーティング構文を可能にします。

これを説明する例を次に示します。 以下に示す前の `+ url()+`関数:

url(r'^articles/(?P<year>[0-9]{4})/$', views.year_archive),

これで `+ path()+`関数で書くことができます:

path('articles/<int:year>/', views.year_archive),

新しい構文は、URLパラメーターの型強制もサポートしています。 上記の例の年キーワードは、「+ string 」ではなく「 int +」として解釈されます。

Django Webプロジェクトの `+ settings.py `および ` urls.py +`ファイルに適切なコードがあることを確認したので、アプリケーションが管理モデルと管理ユーザーインターフェイスにアクセスできることがわかります。

手順2-管理者がインストール済みアプリであることを確認する

次に、モデルをデータベースに移行して、新しく追加された管理者モデルを取得する必要があります。

`+ manage.py +`ファイルがあるディレクトリに移動します。

cd ~/my_blog_app/blog

+ models i`に変更を加えるときはいつでも、 + migrate`コマンドを忘れずに実行してください。

python manage.py migrate

コマンドを実行すると、 `+ settings.py `ファイルの ` INSTALLED_APPS `セクションに移動したときに見たように、 ` admin +`モデルが既に追加されているため、次の出力を受け取るはずです。

OutputOperations to perform:
 Apply all migrations: admin, auth, blogsite, contenttypes, sessions
Running migrations:
 No migrations to apply.

サーバーのIPアドレスで次のコマンドを実行して、サーバーを起動できるようになりました。

python manage.py runserver :8000

次に、選択したブラウザで管理パネルのURLに移動します。

http://:8000/admin/

これに似たものが表示されます。

image:https://assets.digitalocean.com/articles/eng_python/django/django-admin-login.png [Django管理者ログイン画面]

この画面に到達すると、管理アプリが正常に有効になっていることがわかります。

アプリを有効にしましたが、現在Django管理アカウントはありません。 ログインするには、管理者アカウントを作成する必要があります。

ステップ3-管理者スーパーユーザーアカウントを作成する

ログインページが表示されますが、ログインするための資格情報がありません。 これらの資格情報の作成は簡単です。

Djangoはスーパーユーザーアカウントを生成する簡単な方法を提供します。これは、 `+ manage.py +`ファイルを実行してスーパーユーザー作成プロセスを開始することで実行できます。

python manage.py createsuperuser

そうすると、ユーザー名、メール、パスワードの詳細を入力するよう求められます。 このチュートリアルでは、ユーザー名「」、メール「」、パスワード「++」で管理者アカウントを作成します。 この情報を自分の好みで入力し、覚えやすい安全なパスワードを使用してください。

OutputUsername (leave blank to use 'root'):
Email address:

次に、 `+ Password:+`プロンプトが表示されたら、パスワードを2回入力します。 入力したときにキーストロークやパスワードは表示されません。 各プロンプトの後でEnterキーを押して、パスワードを確認します。

OutputPassword:
Password (again):

この時点で、ユーザー名が「」でパスワードが「」の管理者アカウントが作成されました。

ログインして、管理ページにあるものを見てみましょう。 必要に応じて、URL ` http://:8000 / admin / +`に再度移動して、管理者ログインページにアクセスします。 次に、作成したユーザー名とパスワード、パスワードを使用してログインします。

ログインに成功すると、次のページが表示されます。

image:https://assets.digitalocean.com/articles/eng_python/django/django-admin-panel.png [Django Admin Panel]

次に、ブログアプリを管理パネルに接続する必要があります。

前の手順で、管理インターフェイスに正常にログインしましたが、ブログアプリがまだ表示されていないことに気付いているかもしれません。 そこで、ブログアプリを関連モデル「+ Posts」と「+ Comments」に追加して登録することで、それを変更する必要があります。

これを行うには、次のように、 `+ 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'),
]

これらは、アプリケーションが「」および「」の「+ views」にアクセスできるようにするために必要なURLパターン式です。 これらの「+ views +」はまだ作成していませんが、これについてはシリーズの後半で説明します。

ステップ5-ブログアプリを管理者に接続する

ブログを管理者に接続すると、管理ダッシュボード内の `+ Posts `と ` Comments `の両方のリンクが表示されます。 以前見たように、ダッシュボードには現在、「 Groups」と「+ Users」のリンクのみが表示されています。

これを行うには、 + blogsite`のadminファイル内に + Posts`および `+ Comments On`モデルを登録する必要があります。

`+ blogsite +`ディレクトリに移動します:

cd ~/my_blog_app/blog/blogsite

次に、 `+ admin.py +`ファイルを作成します。

touch admin.py

それが完了したら、ファイルを開きます。

nano admin.py

そして、次のコードが含まれるようにファイルを編集します。

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://:8000 / admin +`を開き、まだログインしていない場合は資格情報を使用して管理者にログインします。 このチュートリアルでは、ユーザー名「」とパスワード「」でログインしました。

ログインしたので、サーバーを実行すると次のWebページが表示されます。

image:https://assets.digitalocean.com/articles/eng_python/django/django-admin-models-added.png [モデルが追加されたDjango管理パネル]

これは、アプリ「+ blogsite +」をDjango管理ダッシュボードに接続したことを示しています。

アプリのテストが完了したら、 + CTRL + + `+ C `を押して ` runserver +`コマンドを停止できます。 これにより、プログラミング環境に戻ります。

Python環境を離れる準備ができたら、 `+ deactivate +`コマンドを実行できます:

deactivate

プログラミング環境を非アクティブ化すると、ターミナルコマンドプロンプトに戻ります。

結論

このチュートリアルでは、管理インターフェースを有効にし、管理ログインを作成し、 `+ Post `モデルと ` Comment +`モデルを管理者に登録しました。

Django管理インターフェイスは、ブログで投稿を作成し、コメントを監視する方法です。

このシリーズで取り上げるのは、ブログアプリケーション用の `+ views +`を作成することです。

Related