見出し画像

【Udemy:Day2】Djangoの基礎をマスターして、3つのアプリを作ろう!

受講後記

学習時間
 4時間
総評
 Djangoの特徴を踏まえながら開発をすすめることができた。
 知識の定着のため、復習する必要はあるね。

講座メモ

目標
todoリストを作成する。
・優先度によって色が変わる
・modelsを使いこなせるようになる

初期設定
「django-admin」で、「.」をつける意味
余計なフォルダができてしまうため。

models.pyについて
・DBを扱うときの設計書(細かい設定はなしでいける)
※そもそもDBとは何なのか?→きれいに整頓された図書館
・はじめのモデル作成
 どんな項目をつくるのか
 どんなデータを入れてくるのか(文字列?数字?)
・modelsフィールドは以下で調べる
 Qiitaで調べる
 Djangoの公式サイト(難易度高)

makemigrationsとmigrateについて
makemigrations:過去の変更履歴、エラーの出力
migrate:実際のDBに書き込む操作(initalをもとに作る。それ以外は初期値)
上の2つをすることでDBを作る

管理画面とCreateSuperUser
・データを簡単に入れる機能:管理画面
・CreateSuperUserをmanage.pyから作る

CRUD
・modelsで作ったデータをhtmlに埋め込む
C:作る
R:読み込む
U:更新
D:削除
例:ツイッター、FB
・CRUDとDjangoのテンプレート
C:CreateView
R:ListView、DetailView
U:UpdateView
D:DeleteView

R:ListView
データの一覧をリストとして表示する
list.htmlのタグ説明
 ・{% %}:複雑な処理
 ・{{ }} :データ
 ・< > :タグ

R:DetailView
データの中身を表示することに適したテンプレート
detailは、どのデータを持ってくるのか伝える必要がある
→方法は、ObjectPkと/を使う
 url.pyにprimary_keyを/あとにいれる

Bootstrapを使ってみる
見た目を整えるために使用するFW
きれいなデザインを作れるコード群
効率的にサイトを作成するなら必須!!

テンプレートを使い回す
重複している部分が多い
→Djangoの得意技!!!!
例:base.html(Block sidebarやcontent)などなど

見た目をととのえる
・Header
・ListBox

CSSとモデルのデータを連携させる
モデルのpriorityと画面表示の色をつなげる。
・ジャンゴのタグを埋め込む!
・mode.pyのDBの設計を再度書き込ませる
(コードに「,」を書き忘れて、ワチャワチャした)

C:CreatelView
実際に新しくデータを作るときに使うテンプレート
エラーで躓いた箇所
 ・CreatelViewするときは、model.pyでどの項目を作るか明記する
 ・CSRF verification failed. Request aborted.は「クロスサイトスクリプト防止」
 ・ImproperlyConfigured at /create/
  データの作成はできたけど、リダイレクト先がわからない
 →reverse_lazyを使う
reverse_lazy(クラスの中でreverseを使う場合)
reverse(URLを逆回りするview→url)

D:DeleteView
削除をするときに使用するテンプレート
・/<int:pk>が必要

U:UpdateView
データを更新するときに使用するテンプレート
・スペルミスが発生。スペリングが課題

細かい修正、URLつなぎこみ
・エラー:NoReverseMatch at /list/
URLで移動させる個別の指示が入っていない

まとめ
何回もコードを書いていくことが理解を深めるコツ!!!
・model(DBを扱う設計書、DBを簡単に扱える)
・管理画面(効率的に管理画面を扱える)
・Base.html(実際にHTMLを作る時のテンプレート)
・CRUDとそれぞれのView(modelの機能性)
・Csrf_token,reverse,pk(意識しとくとエラー回避できる)
・BootStrap:WebFWの紹介、使い方

この記事が気に入ったらサポートをしてみませんか?