Django簡単なアプリケーションができるまで④

#おさらい
ここまではHello World!を表示させるとこまで書き終えました。
今回はadminページへログインして、postを追加するまでをやりたいと思います。

#管理者ページ
まず管理者ページを確認してみましょう

```
$ python3 manage.py runserver
```
runserverしてから、 http://127.0.0:8000/admin ページを開いてみます。
すると、
<img width="622" alt="スクリーンショット 2019-03-28 10.13.52.png" src="https://qiita-image-store.s3.amazonaws.com/0/376889/bbf8b3b7-37a3-3ab5-46c7-74f0107f1f14.png">
この様な画面が出ているかと思います。

これは管理者ページにログインするためのページです。ですが、まだユーザーやパスワードの設定は済んでいないので、ログインできません。

#管理者ユーザーの作成
ということでユーザーを作成していきたいと思います。

```
python3 manage.py createsuperuser
```
このコマンドを叩くと、username,メールアドレス,パスワードの入力を求められますので、随時任意の値を入力してください。

ユーザーの作成が完了しましたら、先ほどの管理者ログインページへ戻り、作成したユーザーでログインしてみます。
<img width="1144" alt="スクリーンショット 2019-03-28 10.26.50.png" src="https://qiita-image-store.s3.amazonaws.com/0/376889/5c04d4d1-221a-f1c0-3f09-46b78afdcdd6.png">
ログインが無事完了すると、この様なページが表示されます。

今回はこのページのグループ,ユーザーがあるブロックの上に投稿フォームを作成して、そこからブログ記事の様なものを投稿し、webページで表示ということをやっていきたいので、まずは投稿フォームを作っていきます。

そのために、models.pyにテーブルの定義を行なって、マイグレートしていきます。

#必要な情報をマイグレート
さっそく、アプリケーションフォルダの中にあるmodels.pyを開いて、以下のコード書いていきます。

```Python:models.py
class Post(models.Model):
    title = models.CharField(max_length=20)
    published = models.DateTimeField()
    image = models.ImageField(upload_to='media/')
    body = models.TextField()
```
まずPostというクラスをmodels.Modelを継承して作成し、上からタイトル、時間、画像、本文の順でテーブル定義を行なっています。

それではマイグレートします。

```
$ python3 manage.py makemigrations
```
以下の様にログが出力されたら、
<img width="422" alt="スクリーンショット 2019-03-28 11.40.15.png" src="https://qiita-image-store.s3.amazonaws.com/0/376889/30ce4b1c-ec57-0f4c-5d39-54cd4681d7c5.png">

```
$ python3 manage.py migrate
```
migrateコマンドを叩いてマイグレートを完了させます。
<img width="759" alt="スクリーンショット 2019-03-28 11.41.13.png" src="https://qiita-image-store.s3.amazonaws.com/0/376889/ef8a335f-9259-a9e4-15b6-db7ff8412120.png">

#管理者ページに投稿フォーム作成
マイグレートまで済みましたら、次に投稿フォームの作成を行なっていきます。

アプリケーションフォルダ内にあるadmin.pyを以下の様に編集します。

```Python:admin.py
from .models import Post

admin.site.register(Post)
```
models.pyからPost classをimportし、registerの引数に指定してあげます。
ここまで書けたら、  http://127.0.0.1:8000/admin にログインして管理者ページを見てみましょう。

すると、
<img width="1162" alt="スクリーンショット 2019-03-28 11.51.23.png" src="https://qiita-image-store.s3.amazonaws.com/0/376889/13aefb3a-8ec9-4e88-d114-0ff77bb84bf3.png">
この様にPostsの投稿フォームが出来上がっていると思います。ここから1つ記事を投稿してみましょう。

Postsをクリックして、
<img width="1165" alt="スクリーンショット 2019-03-28 11.52.24.png" src="https://qiita-image-store.s3.amazonaws.com/0/376889/8d10ae78-7d37-c320-8c52-8c14f9cd8d77.png">
右上のPOSTを追加をクリックします。
すると、以下の様な画面が現れると思うので、それぞれの項目に任意の情報を追加していきましょう。
<img width="1157" alt="スクリーンショット 2019-03-28 11.52.54.png" src="https://qiita-image-store.s3.amazonaws.com/0/376889/7b63210f-6223-b039-9325-8e0c32d1a15e.png">
この記事では以下の様にしてPostしたいと思います。
<img width="1158" alt="スクリーンショット 2019-03-28 11.54.00.png" src="https://qiita-image-store.s3.amazonaws.com/0/376889/6527bcc1-422a-209e-f631-b130d681d365.png">
右下の保存ボタンをクリックしますと、
<img width="1162" alt="スクリーンショット 2019-03-28 11.55.23.png" src="https://qiita-image-store.s3.amazonaws.com/0/376889/8424735a-68f1-f140-d42d-da621a431593.png">
この様に追加完了メッセージが上に出力され、Postsを選択した画面に遷移します。

#長くなった
少し長くなってしまったので、軽くこの記事で行ったことを確認していきましょう。

まず管理者ページへのログイン画面を表示させ、ログインするためのユーザー情報を作成しました。
その後、postに必要な情報をマイグレートしテーブルを作成し、更にPostフォームを作成し、そこから1つ記事を投稿してみました。


この記事はここまで