開発準備をしよう(仮想環境/プロジェクト/アプリを作る)

開発を進めるにあたって、まずは1つ目のチュートリアルと同様Djangoプロジェクトとアプリを作成します。

仮想環境を作ろう

まずは、今回のプロジェクト用に仮想環境を作成します。この環境にインストールするのは、チュートリアル1と同じくPython3.6とDjango2.0.2です。チュートリアル1のときに作った仮想環境を有効にして、それをそのまま使っても問題ありません。

新しく環境を作る場合は、任意のディレクトリまで移動した後、以下の手順で作成しましょう。

~/

$ python3 -m venv memo_venv

これでmemo_venvという名前の仮想環境ができました。次に、仮想環境を有効にし、Djangoをインストールしましょう。

~/

$ source memo_venv/bin/activate
(memo_venv) $ pip install django==2.0.2

これで、環境構築が完了しました。仮想環境から抜ける場合のコマンドは deactivateです。

プロジェクトとアプリを作ろう

次に、Djangoプロジェクトとアプリを作りましょう。

まずはプロジェクトからです。仮想環境を有効にした状態で、以下のコマンドを打ってください。今回はmemoというプロジェクト名にします。プロジェクトは、デスクトップ等の任意の場所に作成してください。

~/

$ django-admin startproject memo

プロジェクトは、ウェブサービス全体に関わる設定をしているものです。エディタでsettings.pyファイルを開き、LANGUAGE_CODETIME_ZONEを日本仕様に変更しておきましょう。今回作るメモアプリでは、それぞれのメモの最終更新日を表示させるのですが、このTIME_ZONEが基準となって時刻が表示されます。

~/memo/memo/settings.py

LANGUAGE_CODE = 'ja'

TIME_ZONE = 'Asia/Tokyo'

書き換えたら保存して、ルートディレクトリ(~/memo)でpython manage.py runserverコマンドを打ちサーバーを起動してください。http://127.0.0.1:8000/にアクセスして無事ページが表示されたら成功です!

python manage.py runserverコマンドを打つと、サーバーが起動されてページは表示されますが、ターミナル画面をよくみるとこのような警告メッセージが出ているかと思います。

~/memo

$ python manage.py runserver
Performing system checks...

System check identified no issues (0 silenced).

You have 14 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.

August 11, 2018 - 12:00:00
Django version 2.0.2, using settings 'memo.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

これは、1つ目のチュートリアルでも少し触れましたが、デフォルトで設定されているマイグレーション情報がデータベースに反映されていない為に表示されるメッセージです。DjangoはデフォルトでUserモデルなどを作成してくれていますが、最初の段階ではまだその情報がデータベースに反映されてていないということです。

このエラーメッセージは、python manage.py migrateコマンドでマイグレートすることにより解消されますが、その前に、試しに以下2つを実行してみてください。2つともエラーが出るはずですが、これはデータベースが作成されていないことによるエラーです。

  1. Adminページ(http://127.0.0.1:8000/admin)にログインを試みる。

  2. python manage.py createsuperuserコマンドでスーパーユーザーを作成しようとすると下のようなエラーが出る。

~/memo

$ python manage.py createsuperuser
>>>
    return Database.Cursor.execute(self, query, params)
django.db.utils.OperationalError: no such table: auth_user

エラーが確認できたら、python manage.py migrateコマンドでデータベースを生成しましょう。データベースが作られると、adminページへのログインやスーパーユーザーの作成もできるようになります。

adminページにログインできたら、最後にアプリを作成しておきましょう。アプリとはウェブサービスに必要な機能を実現する部分のことです。

今回は、「app」という名前のアプリを作成します。

~/memo

$ django-admin startapp app

新しくアプリを作成した時の注意点として、settings.pyファイルのINSTALLED_APPSに追加することを忘れないでください。

~/memo/memo/settings.py

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app',
]

これで、開発の準備が整いました!次のレッスンからは、アプリを編集して機能を付け足していきましょう。

< PREV NEXT >