Django初学者の自分へ（1） - プロジェクト・アプリ作成 -

## **初めに**
私事で大変恐縮です。1か月前に Django の勉強を始めました。
Python歴は3か月ほどです。いずれにせよ大初心者です。
これは当時の僕に宛てたささやかな Django チュートリアルです。

## **チュートリアル一覧**
| No. | タイトル                                                        |    |
|-----|:---------------------------------------------------------------|---:|
| 1   | **Django初学者の自分へ（1） - プロジェクト・アプリ -**         | ☆ |
| 2   | [Django初学者の自分へ（2） - MTVとは -](https://qiita.com/Yi-Gaoqiao/items/f375ea362034b8719440)                        |    |
| 3   | [Django初学者の自分へ（3） - こんにちわ世界！ -](https://qiita.com/Yi-Gaoqiao/items/e63be4937dff961c235b)                |    |
| 4   | [Django初学者の自分へ（4） - メモアプリ作成 -](https://qiita.com/Yi-Gaoqiao/items/d87408e173758672ed11)                  |    |


## **目標**
本チュートリアルはすでに Python をある程度学習しているものの、Webアプリケーションは作ったことがない、もしくは Django に触れたことがないといった方に向けて書きました。目標は Django の仕組みを超絶ざっくりと理解し、Django って怖くないんだよ、面白いんだよ、と感じてもらうことです。したがって複雑な内容は取り扱いません。  
安心してください1か月前のぼく。

## **前提**
- 開発環境を構築済み
    - [こちら](https://qiita.com/Yi-Gaoqiao/items/5815c6ec609022d34d32)はぼくがまとめた開発環境構築についての記事です。（ぜひご一読を）
    - また、[こちら](https://eiry.bitbucket.io/tutorials/installation/index.html#python-django)のサイトも参考になると思います。
- 筆者はWindowsです。（Macの方は適宜読み替えてください）
- すでに仮想環境が有効

## **レッツジャンゴ -下準備-**
実際に手を動かしながら Django に触れ、基本的な操作を見ていきます。  

## **プロジェクトの作成**
まず初めに以下のコマンドを実行し、`myapp` という名前のプロジェクトを作成します。

    C:\Users\User_name>django-admin startproject myapp

プロジェクトの作成に必要なコマンドはたったのこれだけです。中身を確認してみましょう。
~\User_nameにできたファイルは以下のようになります。

    myapp/
        manage.py        ☆
        myapp/
            __init__.py
            asgi.py
            settings.py  ☆
            urls.py      ☆
            wsgi.py

☆マークは使用頻度高めなので要チェックです。

---  

ここでプロジェクトの動作確認をします。  
`myapp` ディレクトリに移動し、次のコマンドを実行しましょう。  

    C:\Users\User_name>cd myapp
    C:\Users\User_name\myapp>python manage.py runserver

すると以下の出力が確認できるのではないでしょうか。  

    C:\Users\User_name\myapp>python manage.py runserver
    Watching for file changes with StatReloader
    Performing system checks...

    System check identified no issues (0 silenced).

    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.
    May 17, 2020 - 10:01:28
    Django version 2.2.12, using settings 'myapp.settings'
    Starting development server at http://127.0.0.1:8000/
    Quit the server with CTRL-BREAK.

Django の開発サーバが起動したので、ブラウザで `http://127.0.0.1:8000/` にアクセスしてみましょう。緑の可愛いロケットが飛んでいたらあなたの勝ちです。おめでとうございます!!  
![django_server.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641843/c75851e7-7b5a-6c5a-7b7c-f24f7363ca99.png)


## **アプリの作成**
早速アプリを作成していきます。まずは `myapp` ディレクトリに移動します。

    C:\Users\User_name>cd myapp

ここでは `app1` という名前のアプリを作成します。  
次のコマンドを実行してください。

    C:\Users\User_name\myapp>python manage.py startapp app1

~\User_nameにできたファイルは以下のようになります。

    myapp/
        manage.py
        myapp/
            __init__.py
            asgi.py
            settings.py
            urls.py
            wsgi.py
        app1/                  <-- ここです！アプリができています！
            migrations/
                __init__.py
            __init__.py
            admin.py
            apps.py
            models.py         ☆
            tests.py
            views.py          ☆

☆マークはめちゃめちゃよく使います。ファイルはデフォルトでは以上ですが、この後 `urls.py`, `forms.py`, `filters.py` など必要に応じて自分で追加していきます。

続いてアプリができたことをプロジェクトにお知らせします。  
`settings.py`

    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles,
        'app1',   # 追加
    ]

INSTALLED_APPS では自身で作成したアプリや、必要に応じて外部からインストールしたアプリも随時追加する必要があります。

`settings.py` は先ほどのアプリの追加だけでなく、データベースや静的ファイルなど、様々な設定を行う設定ファイルです。`settings.py` については [公式ドキュメント](https://docs.djangoproject.com/ja/3.0/contents/) や [こちら](https://codor.co.jp/django/settings-py%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E4%B8%AD%E8%BA%AB%E3%82%92%E8%A7%A3%E8%AA%AC%E3%80%90%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8%E3%81%8C%E5%A4%A7%E5%88%87%E3%81%A7%E3%81%99%E3%80%91) に目を通しておくと、理解が深まりに深まると思います。  

ひとまず下準備は以上です。ここまでの流れは毎回同じなので覚えちゃいましょう！
慣れてくると目を閉じていてもできるようになります。（嘘です）  

[次回](https://qiita.com/Yi-Gaoqiao/items/f375ea362034b8719440)は MTV モデルについて学習します！