たまにしかやらないから、いつも忘れてしまう。
プロジェクトの作成
$ django-admin startproject test
上記コマンドを実行すると「test」というプロジェクトが作られ、その直下にmanage.pyと「test」というアプリケーションディレクトリが作成される。
/test
/test/manage.py
/test/test/settings.pyほか
testディレクトリの直下に同名のtestディレクトリがあるのはややこしいし、美しくない。
$ mkdir test
$ cd test
$ django-admin startproject config .
のようにすると
test
test/manage.py
test/config/settings.pyほか
のようなディレクトリ構造になる。
venvの準備
$ python3 -m venv venv
プロジェクトの直下で行う。
test
test/manage.py
test/config/settings.pyほか
test/venv/
venvの起動
$ source venv/bin/activate
(venv) $
起動中は頭に(venv)が表示される。
venvの停止
(venv) $ deactivate
$ venv deactivate のようにvenvをつける必要はない。
仮想環境にDjangoをインストール
(venv) $ pip install django
pipのアップグレード
You are using pip version 10.0.1, however version 19.3.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Djangoのインストールすると、ほぼ確実に「pip古いよ」と言われるので、ついでにアップグレード。
(venv) $ pip install --upgrade pip
Djangoを動かしてみる
(venv) $ python manage.py runserver
プロジェクトディレクトリ直下、すなわちmanage.pyがある階層に移動して上記コマンドを実行。
Django version 2.2.7, using settings 'config.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
あとはWebブラウザで「 http://127.0.0.1:8000/ 」にアクセス。
「 http://127.0.0.1:8000/admin/ 」はプロジェクトの管理画面。
You have 17 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.
(venv) $ python manage.py migrate
「マイグレートしないとDjangoの管理画面使えないよ」というので、上記コマンドを実行。
(venv) $ python manage.py createsuperuser
管理画面用のDB設定はされたが、ユーザーが不在なので上記コマンドでユーザーを追加する。