#はじめに
本記事は、Djnagoの管理者サイトを表示するところまで行った際の備忘録として書いたものである。
#前提条件
- OS環境は、Virtualboxで稼働中のCentOS8.1です。以下、OS詳細情報となります。
# cat /etc/centos-release
CentOS Linux release 8.1.1911 (Core)
-
Virtualboxのネットワーク設定は、「NAT」「ホストオンリーアダプター」で構成。
-
Django環境が構築済みであること。
※Django環境の構築は、以下を参照してください。
①Django 環境構築
#(1)Djangoの環境設定
▼プロジェクトを生成(今回は、qiitaというプロジェクトを生成)
# django-admin startproject qiita .
※ドットをつけて「startproject」を実施することで、カレントディレクトリ直下にDjangoプロジェクトを生成することができる。(無駄なディレクトリ階層を作らない)
▼プロジェクト生成後の確認
# tree --charset=C
↓以下出力結果
.
|-- manage.py
`-- qiita
|-- __init__.py
|-- settings.py
|-- urls.py
`-- wsgi.py
1 directory, 5 files
▼Djangoプロジェクト全体の設定値を修正
#変更点①(接続許可範囲を設定)
ALLOWED_HOSTS = []
↓
ALLOWED_HOSTS = ['*']
#変更点②(DBをsqliteからPostgreSQLに変更)
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
↓
DATABASES = { #※1
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'djangodb',
'USER': 'django',
'PASSWORD': 'django',
'HOST': 'localhost',
'PORT': '',
}
}
#変更点③(Djangoの表示言語を変更)
LANGUAGE_CODE = 'en-us'
↓
LANGUAGE_CODE = 'ja'
#変更点④(タイムゾーンを変更)
TIME_ZONE = 'UTC'
↓
TIME_ZONE = 'Asia/Tokyo'
※1:Djangoでは、setting.pyにデータベースの接続情報を定義しとくだけで、DBとの連携が可能になる
以下の接続情報をもとに、アプリとの連携を行っている。
データベース名:djangodb
ユーザ名:django
パスワード:django
ホスト名:localhost
ポート:指定無しなので、PostgreSQLのデフォルトポートの「5432」が使用される。
#(2)管理者サイト表示
▼マイグレーションを実施
# python manage.py migrate
※上記のコマンドで、Djangoに必要なテーブルなどを自動生成してくれる。
※作成されるテーブルは以下を参照
djangodb=# \dt
リレーション一覧
スキーマ | 名前 | 型 | 所有者
----------+----------------------------+----------+--------
public | auth_group | テーブル | django
public | auth_group_permissions | テーブル | django
public | auth_permission | テーブル | django
public | auth_user | テーブル | django
public | auth_user_groups | テーブル | django
public | auth_user_user_permissions | テーブル | django
public | django_admin_log | テーブル | django
public | django_content_type | テーブル | django
public | django_migrations | テーブル | django
public | django_session | テーブル | django
(10 行)
▼Djangoの管理者サイトにアクセスする用のユーザを作成
# python manage.py createsuperuser
↓以下が、入力が要求される項目
ユーザー名 (leave blank to use 'root'): admin
メールアドレス:
Password:
Password (again):
Superuser created successfully.
※メールアドレスは、必須の入力項目ではないので、入力しなくても可。
▼動作確認
# python manage.py runserver 192.168.56.201:8000
http://192.168.56.201:8000/admin
※上記URLにアクセスし、ログイン画面でユーザ認証を実行後、無事に管理者サイトが表示できればOK
以下が管理者サイトのキャプチャである。
管理者サイトに無事にアクセスができたので、DjangoとDBの連携が問題なくおこなえていることになる( *´艸`)
これでおけまる('ω')
次項に続く( ^ω^)・・・
③Django アプリケーション設定