DjangoでWebアプリを作る際の準備（プロジェクト作るところまで）

# 前提
* WSLでWindows上にUbuntu環境ができている。
* Webアプリ開発用のフォルダを作成し、VSCodeでそのフォルダを開いている。
* VSCodeのターミナル上から、Ubuntuをコマンド操作できる。
* Pythonはインストール済み。

ここまでできていることを前提に書いています↓
[VSCodeでフォルダを開いて、ローカルUbuntuのコマンド操作が行えるようにする](https://qiita.com/yamayuz/items/f8aa99e9ca380a55f7b5)

# やりたいこと
* Webアプリを作り始める際に必要になる準備（最小限）をする。
* プロジェクトを作成してサーバーを起動。Djangoのスタートページが表示されるところまで。

# 全体の流れ
1. venvでPythonを実行するための仮想環境を作成する。
2. pipを最新化する。
3. requirements.txtを作成し、Django（必要なら他のパッケージなども）をインストールする。
4. プロジェクトを作成する。
5. プロジェクトの初期設定を行う。
6. サーバーを起動する。

# やってみよう
ここから実際にやっていきます。
### 1. venvでPythonの仮想環境を作成する。
作成するWebアプリごとに仮想環境を用意して、その中で開発を行っていきます。こうすることで、Webアプリごとに開発環境を分けることができるので管理がしやすいです。
なので例えば、不要になったWebアプリは仮想環境ごと（フォルダごと）消し去ってしまえばいいし、パッケージなどもアプリごとに分けてインストールできるので、ごちゃまぜになったりせずそのアプリに必要なものだけをインストールした状態にできるので、すっきりします。
Pythonの仮想環境はいくつかあるみたいですが、今はvenvというものを使っています。

```:VSCodeのターミナル
python3 -m venv venv
```
※ python3の3の部分はインストールしたpythonのバージョンによります。
※ 2つ目のvenvは作成する環境の名前なので、なんでも大丈夫です。
※ Ubuntuでroot権限になってないとうまくいかないかも。

上で指定したフォルダが作成されれば完了です。
![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2533999/a4077734-5034-7428-efc6-ebb1b2a36aed.png)
仮想環境を起動します。

```:VSCodeのターミナル
source venv/bin/activate
```
※ venvの部分は上で指定したフォルダ名にする。
※ Windows環境の場合は、venv/Scripts/activateになる。

仮想環境が起動するとこのように「(venv)」と表示されます。(↓)
![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2533999/41ef8f11-5015-2840-6e48-7b5899268c19.png)

### 2. pipを最新化する。
pipを最新化します。pipというのはpythonで使える、パッケージ管理用のコマンドです。

```:VSCodeのターミナル
python3 -m pip install --upgrade pip
```
※ すでに最新の場合はスキップ可能。

### 3. requirements.txtを作成し、Djangoをインストールする。
必要なパッケージなどをインストールするために、requirements.txtファイルを作成します。
作成したファイルに「Django」と記載して保存します。
![3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2533999/1096b21d-e1ca-1b69-9eb1-3b831491e77e.png)
※ パッケージ名だけ書くと最新のバージョンがインストールされる。バージョンを指定することも可能。
※ 今回はDjangoだけインストールしたいので「Django」とだけ記載。ほかにも必要なものがあれば記載する。

そして下記のコマンドを実行すると、用意した仮想環境にrequirements.txtに記載したパッケージ類がインストールされます。

```:VSCodeのターミナル
pip install -r requirements.txt
```
pipで1つづつインストールしていくことも可能ですが、インストールしたいものが沢山あるときは毎回pipを使うのは面倒ですし、インストールしたものが一目瞭然で分かるので、requirements.txtを使っています。

### 4. プロジェクトを作成する。
Djangoを動かすためには、最低限プロジェクトというものを作成する必要があります。下記のコマンドで作成できるので、VSCodeのターミナルで実行します。

```:VSCodeのターミナル
django-admin startproject herokuDeployProject .
```
※ 最後の「.」は間違えではないのでつける。
※ 「herokuDeployProject」の部分はプロジェクト名なので、作成するアプリに合わせて任意につけてよい。

完了すると、コマンドで指定したプロジェクト名のフォルダが作成されます↓
![4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2533999/9fcc5e8b-39f0-8332-48d6-90cffd954e21.png)

### 5. プロジェクトの初期設定を行う。
プロジェクトの初期設定を行っていきます。とはいっても一旦は言語とタイムゾーンの設定だけですが。
先ほど作成したプロジェクトフォルダの中にあるsettings.pyを変更します。
![5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2533999/d599167b-44ba-d902-5b07-6e34c7a39ef0.png)
LANGUAGE_CODEが言語の設定、TIME_ZONEがタイムゾーンの設定なので、ここを修正して保存します。

```python:settings.py
LANGUAGE_CODE = 'ja'
TIME_ZONE = 'Asia/Tokyo'
```

### 6. サーバーを起動する。
ここまででDjangoを起動する準備が整ったので、サーバーを起動します。下記のコマンドでサーバーを起動します。

```:VSCodeのターミナル
python3 manage.py runserver
```
下記のようになったらサーバーの起動は成功です。（赤文字はいったん無視して大丈夫）
「ctrlキー+クリック」で赤枠線で囲ったところをクリックできるので、クリックするとブラウザが立ち上がりDjangoの起動画面が表示されます。
![6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2533999/7fe73330-3039-9dbd-2720-9c5420ccf5c7.png)
Djangoが起動できました↓
![7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2533999/44b1f5e9-5692-caae-114c-cc4fe81ce16c.png)

# まとめ
これでDjangoが起動できるようになりました。実際にWebアプリケーションを作っていくときは、プロジェクトの他にさらにアプリケーションというものを作る必要があります。ここについては次回のところで書きたいと思います。