Djangoで実務を目指してものづくりをして見る Push編　改訂版

#やってみて
・実務と言ってもスーパープログラマー的に何もかもできるのはなく、実務の一角に切り込もうという作戦である。
・次はまとめに入るPull編です。
・DjangoGirlsを元に自作してみる。
→　HTML・CSS・JavaScript（JQuery）に対して何らかの答えを出します。
→　Gitにあげます。
・今回作ったチュートリアルは現実的なDBにつなげ、かつデータも
きちんと揃えたいと思う。（SQLで考えています。）
・画像は少なくとももう少し考えます。


#完了時点について
タイトルに改訂版をつけた時が完了です。
#ステータス
突き進むPushです。
#背景
##モヤモヤ
・Django、公式のチュートリアルをやると言ってもRestもあるみたい。
・Djangoだけじゃないけど　画面ってめんどくさいんだよな。
・実務がきになる。
・Db　postgreみたいにちゃんとしたものじゃないと問題外でしょう。
・公式のドキュメント読まないといけないの？
##アクション
・やらないことを決める。→　DjangoRest
・しっかりしたものを作る。
・下記のチュートリアルをやって見る。
https://developer.mozilla.org/en-US/docs/Learn/Server-side/Django/skeleton_website
##設計的な説明
-テーブル構成
https://developer.mozilla.org/en-US/docs/Learn/Server-side/Django/Models
![local_library_model_uml.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/271383/8c473583-49bd-5cc3-00e5-33a2212d7e94.png)

-ドキュメントをつどつど読むことを促しているので・・・それに従ってください。
-URL設計が書いていない。→　こちらで書きます。
-フォルダ構成　→下記のGitを参考にしてください。
https://github.com/mdn/django-locallibrary-tutorial

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/271383/4ab8cf35-c3c4-6bc7-d01e-6bfd93d79aaf.png)


##実務に関しては下記で満たすことにする
-テーブル構成がしっかりしている。
-ドキュメント読むことを促している。
-データの管理画面を作成
要件によっては管理画面だけでいいこともある。
-画面も作る予定
→　登録・更新・削除
- postgreにつなげる←　Django公式での奨励がpostgreなので一旦postgreのみとする。
- データ投入を工夫する(プログラム上・JSON・SQL）
- 画面めんどくさいっていうのはやりながら少しずつマスターしていく。※1
→テストやデバックも試していきたいと思います。
-　Git
※1
BreakDown
  Bootstrap ドットインストールや書籍で・・・
　Form　　　　Pull編に書きました。
　CSS　　　　　Progateなどで・・・
　JavaScript　→　古いかもしれないけどjQueryの意　Progateや書籍で・・・
　プログラム　プログラム
　　　　　　　データアクセス
#Djangoについてハマりどころ
・プロジェクトとアプリを別々に作ること

```py
locallibrary/         # Website folder
    manage.py         # Script to run Django tools for this project (created using django-admin)
    locallibrary/     # Website/project folder (created using django-admin)
    catalog/ 
```
・プロジェクト用のurl.pyとアプリ用のurl.pyが別々にあること。

#クラスの役割
```py
manage.py: Django プロジェクトに対する様々な操作を行うためのコマンドラインユーティリティ
locallibrary/__init__.py: このディレクトリが Python パッケージであることを Python に知らせるための空のファイル
locallibrary/settings.py: Django プロジェクトの設定ファイル 
locallibrary/urls.py: Django プロジェクトの URL 宣言、いうなれば Django サイトにおける「目次」に相当
catalog/models.py: モデルは本質的には、データベースのレイアウトと、それに付随するメタデータ
catalog/url.py Django AppのUrl宣言
```
#事前準備
##環境準備
サーバー立ち上げまで
https://www.youtube.com/watch?v=A0Sna4SF5rc
##DjangoでTODOリストを作ろう!
https://qiita.com/__init__/items/b8fd530f3b8603231b35
公式のチュートリアルも含めて一番わかりやすかったです。ToDoリスト作成しました。
###やり方
Dockerは諦めました。
データベースは変えない方が良いかもしれないですね。
requirements.txtは使わなくてもいいと思います。
→サーバー立ち上げまでの範囲で大丈夫です。
以下参考コマンド
source env/bin/activate
python manage.py runserver
python manage.py createsuperuser 
Username (leave blank to use 'XXXX'): admin
Email address: admin@goo.co.jp
Password: 
Password (again): 
Superuser created successfully.
manage.py  startapp todo_app
python manage.py  startapp todo_app
python manage.py makemigrations
python manage.py migrate
##データ操作について
公式とDjangoGirlsのドキュメントをあげておきます。
https://tutorial.djangogirls.org/en/django_orm/
https://docs.djangoproject.com/ja/3.1/topics/
自作動画です。
https://www.youtube.com/watch?v=TNNKDru5zl0&t=8s
#仕様
画面
　管理画面
　一覧画面
　登録・更新・削除に関する画面
DBはpostgre/MySQL
#現在の状況
##画面
リスト
詳細部分
作者情報の登録・更新・削除画面

![スクリーンショット 2021-04-01 0.08.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/271383/1b426448-c663-0638-d64c-480e282ef852.png)
![スクリーンショット 2021-04-01 0.09.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/271383/151946cc-0a2e-f3cf-96cc-b57c09393754.png)
![スクリーンショット 2021-04-01 0.09.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/271383/fb73f9c4-7d60-1489-1b6e-a24eb7951feb.png)
![スクリーンショット 2021-04-01 14.18.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/271383/9941f958-566d-dfe9-fe02-05b81c111b3e.png)
![スクリーンショット 2021-04-01 22.26.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/271383/8dfcc17c-6600-e0fb-b1ba-44da872d48cf.png)
![スクリーンショット 2021-04-01 22.25.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/271383/0431c26f-c3b4-fe3e-6fb5-dfaa4495a56c.png)