Djangoを使って将棋棋譜管理アプリを作る1　～環境構築～

## はじめに
これから何回かに渡って、Djangoを使って将棋の棋譜管理アプリを作っていこうと思います！

### どうして作ろうと思ったか？
まず第一に、僕が最初に本格的に学習した言語がPythonでして、それを使って「何か」つくりたいなぁ～と思ったからです。
そこで趣味である将棋の、「僕の対局履歴の棋譜を管理できたらいいんじゃね」と思ったことがきっかけでした。

そこで始めはFlaskを使って途中まで作っていたのですが、周りの人の意見を聞くと、「絶対Djangoの方がいい！」ということになり、改めて一から作り直すことにしました。

ここでは、備忘録も含めて、作業工程をきままに綴っていきますので、よろしくお願いします。

## 作業環境
今回の作業環境は以下の通りです

- Windows 10 Pro
- Anaconda
    - version1.7.2
    - python 3.7
        - django 2.2.5
- git
    - version 2.25.0.windows.1

## 本稿の内容
- Anacondaでの仮想環境の作成
- Djangoの設定
- Djangoを管理する上でのGitの設定

## Anacondaで仮想環境の作成
そもそもAnacondaが何なのか分かっていなかった(~~1dayインターンで入れろと言われたから入れた~~)。
そこでAnacondaについて以下の記事に詳しく載っていたので、勉強させていただきました。
[【初心者向け】Anacondaで仮想環境を作ってみる][1]

また、Djangoのインストールも含めて、次のサイトも参考にさせていただきました。
[【Anaconda+Django】 PythonでWebアプリを開発してみる。][2]

今回は、kifu_appという仮想環境を作りました。

```
$ anaconda -V
anaconda Command line client (version 1.7.2)

$ activate kifu_app

(kifu_app) $ python -V
Python 3.7.6
```

## Djangoのインストール
[先程のブログ][2]を参考にしたら簡単に終わりました。

## Djangoの設定
### Djangoプロジェクトの作成
以下の記事を参考にさせていただきました。
[Djangoを最速でマスターする part1][3]

プロジェクトを作りたいディレクトリに移動して、次を入力します

```
$ django-admin startproject kifu_app
```
これで以下のディレクトリ構造のプロジェクトができました！

```
- kifu_app_project/
    - kifu_app_project/
        - setting.py
        - urls.py
        - wsgi.py
        - __init__.py
    - manage.py
```

### アプリの作成
上側のkifu_app_projectディレクトリ内で、次を実行します

```
$ python manage.py startapp kifu_app
```
するとディレクトリ構造は次のようになります。

```
- kifu_app_project/
    - kifu_app_project/
        - setting.py
        - urls.py
        - wsgi.py
        - __init__.py
    - manage.py
    - kifu_app
        - admin.py
        - apps.py
        - migrations
        - models.py
        - tests.py
        - views.py
        - __init__.py
```

最後に、setting.pyに以下のものを追加します。（アプリを作ったよ！という報告だそうです）

```
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'kifu_app',     # <-これを追加
]
```

## Gitの連携
どうせなのでGitも練習がてら使えるようにします。
これもkifu_app_projectという名前で、GitHubにリモートリポジトリを作成しました。

コミットなどの詳細は、以下の記事を参考にしました。
[Djangoの使い方～デプロイ編①～][4]

まず、上の階層の方のkifu_app_project内に.gitignoreファイルを作ります。
.gitignoreは、指定したファイルを追跡対象から外すようにするものです。

```:.gitignore
# Created by https://www.gitignore.io/api/django
# Edit at https://www.gitignore.io/?templates=django

### Django ###
*.log
*.pot
*.pyc
__pycache__/
local_settings.py
db.sqlite3
db.sqlite3-journal
media
```

[gitignore.io][5]というサイトで、.gitignoreに書くべきことのテンプレートを作ってくれます。

準備が完了したら、最初のコミットをしていきます。

```
$ git init
Initialized empty Git repository in ~/djangogirls/.git/

$ git config --global user.name "Githubの登録ユーザー名"

$ git config --global user.email Githubの登録メールアドレス

$ git add --all .

$ git commit -m "My Django Girls app, first commit"
13 files changed, ~~~

$ git remote add origin リポジトリのURL

$ git remote -v
origin  リポジトリのURL

$ git push -u origin master
```
上から順にコマンドを実行していけば大丈夫なハズです。
詳しく説明していただいている方が他にもいらっしゃるので、そちらを参考にしてください。

GitHubを確認すると、確かにpush出来ていました！

## 次回予告
次回は、[データベースの設定][6]を行っていきます！

[1]:https://qiita.com/ozaki_physics/items/985188feb92570e5b82d
[2]:http://makimakimakino.hatenablog.com/entry/2018/06/17/231050
[3]:https://qiita.com/gragragrao/items/373057783ba8856124f3
[4]:https://qiita.com/connecrew-sugiyama/items/ce5beafce9201736c39e
[5]:https://www.gitignore.io/
[6]:https://qiita.com/r-programming/items/3c1b9a48d6db5bf3c192