Djangoプロジェクトのテスト起動

サーバー情報

【さくらのVPS】
メモリ:8GB
ストレージ:SSD 400GB
CPU:6コア

OS

CentOS7 x86_64

インストール

Python:
pip:
git:
psql:
PostgreSQL:
Nginx:

3.6.8
9.0.3
1.8.3.1
9.2.24
9.2.24
1.16.1

仮想環境

Django:
Gunicorn:

3.1.4
20.0.4

1.設定ファイルの変更

作成したDjangoプロジェクトを起動させるための設定を行います。

Djangoプロジェクト内の「settings.py」の変更を行います。

vi /home/☆☆☆/☆☆☆/settings.py

Djangoプロジェクトの設定ファイルの編集を行います。

☆☆☆:プロジェクト名

手順1.

デバッグ設定を解除します。

デバッグ設定のままだと、外部からプロジェクトのファイル構成が見られてしまいます。

そのためセキュリティの観点からも設定値を変更しておきましょう。

DEBUG = True

DEBUG = False

手順2.

VPSサーバーにおいて「逆引きホスト」として設定したドメインを、Djangoプロジェクトに登録します。

※▼▼▼:ドメイン名

ALLOWED_HOSTS = []

ALLOWED_HOSTS = [“▼▼▼”]

手順3.

使用するデータベースの設定を行います。

今回はデフォルトの【SQLite3】から【PostgreSQL】に変更しているので、設定内容を反映させます。

DATABASES = {
  ’default’: {
    ’ENGINE’ :  ‘django.db.backends.sqlite3’,
    ’NAME’ :  BASE_DIR / ‘db.sqlite3’,
  }
}

DATABASES = {
  ’default’: {
    ’ENGINE’ :  ‘django.db.backends.postgresql’,
    ’NAME’ :  ●●●(データベース名),
    ’USER’ :  ■■■(ユーザー名),
    ’PASSWORD’ :  ▲▲▲(パスワード),
    ’HOST’ :  ▼▼▼(ホスト名),
    ’PORT’ :  ‘5432’,
  }
}

手順4.

プロジェクト内で使用する”static”と”media”の設定を行います。

STATIC_URL = ‘/static/’ [デフォルトで記載あり]

STATIC_ROOT = ‘/usr/share/nginx/html/static’

MEDIA_URL = ‘/media/’

MEDIA_ROOT = ‘/usr/share/nginx/html/media’

ポイント

静的ファイル(”static”と”media”)はNginxに関連付けしないといけないため、Nginx内にフォルダを作成しましょう。

Djangoは動的ファイルが得意ですが、静的ファイルの処理が遅いという欠点があります。

そのため、クライアントが最初にアクセスを行い、処理性能・高い並行性・メモリ使用量の小ささに焦点を当てて開発されているNginxに静的ファイルを紐づけさせてあげることで、Webアプリケーションとしてスムーズな動作が実現できます。

2.テスト起動前の準備

「settings.py」の【手順4.】で記載したフォルダが存在しないので、予め作成しておきます。

これらのフォルダは後述するNginxの設定ファイルに記載するので、この段階で忘れずに作成しておきましょう。

sudo mkdir /usr/share/nginx/html/static

“static”用フォルダの新規作成

sudo mkdir /usr/share/nginx/html/media

“media”用フォルダの新規作成

「settings.py」に記述した静的ファイル(”static”と”media”)をDjangoプロジェクトに覚えさせます。

sudo python manage.py collectstatic

アプリケーションごとの静的ファイル(”static”と”media”)のディレクトリを

指定ディレクトリに集約コピーする機能

3.テスト起動

「settings.py」において使用するデータベースを変更したので、Djangoプロジェクトにその旨を通知します。

python manage.py makemigrations

マイグレーションファイルを作成します。

python manage.py migrate

マイグレーションファイルをデータベースに適用します。

データベースの登録を実施したので、スーパーユーザーを登録します。

これをおこなうことで、「ドメイン/admin」に接続すると管理画面を参照することが出来ます。

python manage.py createsuperuser

スーパーユーザーを作成します。

ユーザー名

(任意で設定できます)

メール

(任意で設定できます)

パスワード

(任意で設定できます(8文字以上にする必要があります))

python manage.py runserver [ポート]:

Djangoプロジェクトを起動します。

※[ポート]:開放済みの指定ポート(デフォルト:8000)

Djangoのデフォルト画面であるロケットが表示されればOKです。