#環境
MacOS Mojave / Chrome / IntelliJ IDEA
djangoはvenv環境内にインストールしているため、ターミナルではvenv環境に入ってから。
IntelliJを使用しているためプロジェクトは「IdeaProjects」というディレクトリの中に作成。
練習用なので適当なディレクトリを作成しておく(django_learninなど)
venv環境へ(環境設定はこちらを参考)
$ source env/bin/activate
Djangoのインストールは
(env)$ pip install django
Django環境の準備
プロジェクトを作成
「プロジェクト」は毎回作っても良いけど、この下の階層に「アプリ」というディレクトリを作成する事になるので学習のためならプロジェクトは一個で良いかもしれない。
(と言いながらこの呪文を覚えてしまうほど、たくさんプロジェクトを作った・・・)
前述した適当なディレクトリに移動した上で
(env)$ django-admin startproject sample_pj
※sample_pj は好きな名前を入力
ここで
command not found: django-admin
などのエラーがでる場合は、
1.djangoのインストールができていない
2.venv環境に入っていない(上記)
の2点であることが多いかと。
新しく上記で名付けたプロジェクト名と同名のディレクトリができる
sample_pj
manage.py
このmanage.pyというファイルはこれから嫌でも覚えることに。
Djangoアプリの作成
manage.pyが入っているディレクリに移動して
(env)$ python manage.py startapp django_app
※django_app は好きな名前を入力
python の部分は ./ でもOKなので
(env)$ ./manage.py startapp django_app
と書いてもOK。今後出てくる manage.py を利用する際の頭の python という部分も同様。
作成したアプリは忘れずに登録
上記のプロジェクトと同名のディレクトリ内にある setting.py を開き アプリを登録する場所へ追記する。
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django_app', #今回で追加したアプリ
]
#モデルの作成
アプリケーションフォルダ内にある models.py はデータベース設計の際に必要だとしたものを定義しておく。
(環境構築のテストなどであればここは飛ばしてもOK)
※開発の手順についてざっくりまとめたものはこちら
models.py を触ったらマイグレーションが必要。
アプリケーション内にマイグレーションファイルを作成
(env)$ ./manage.py makemigrations django_app
アプリディレクトリ内に migrations というファイルができている。
マイグレーションを実行
(env)$ ./managae.py migrate
テーブルの登録
admin.py に models.py で作成したモデルを登録
(環境構築のテストなどであればここは飛ばしてもOK)
from django.contrib import admin
from .models import AAAA, BBBB, CCCC
admin.site.register(AAA)
admin.site.register(BBB)
admin.site.register(CCC)
※AAA や BBB などはmodels.pyで名付けたモデルの名前
#管理者の登録
管理者画面から操作できるようにする
(env)$ ./manage.py createsuperuser
ここで聞かれる情報は
Username: 管理者名
Email address: メールアドレス
Password: パスワード
Password(Again): パスワード再入力
最初の管理者以外は管理者ページで作成が可能
サーバーを起動して管理者画面へ
(env)$ ./manage.py runserver
で上記で登録したID / PASSWORD を入力してユーザー登録画面へ入ることができる