見出し画像

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

受講後記

学習時間
総評

講座メモ

目標
・社内掲示板作成(会員登録のページ、ログインページ)
・リストに直接遷移しようとした場合、ログインページにリダイレクトするシステム

初期設定&render
・初期設定は、①アプリの作成、②Setting.pyの設定、③URLのつなぎこみ
・renderについては、以下に記載する。

def singupfunc(request):
   # renderとは、リクエスト、htmlファイル名、辞書型
   # 第2引数:CBVのテンプレート=siginup
   # 第3引数:model(直接指定もできる)
   return render(request,'signup.html',{'some':100})

見た目を整える
・bootStrapのデザインをそのまま拝借してしまうのが楽!
 なんで、反映されないのか?(ページ専用のCSSが読み込まれていないから)

PostとGet
ブラウザから情報を渡す時に使用
Post:Formの内容をViewで利用する時
Get:それ以外
つまり、ボタン以外の動作はGetと判定できる。そこを、分岐条件としよう!!

signupviewの作り込み
POSTとGetを理解する必要がある。
POSTの場合は、Formでの入力であるため、その情報をDBに登録する。
model.pyを作成する。

from django.contrib.auth.models import User

これだけでユーザー登録がかんたんにできてしまうのだから、Django素晴らしい、、、

modelから作られるObjectについて
user.objectについて
・まず、「user」はもともと定義されているテーブル
FBVはオブジェクトを呼び出す!!!
①Requestを受け取って、そのRequestをDBに入れ込む
②DBに入っている値を引っ張ってこれる

重複したユーザの場合
UNIQE~エラーが発生する
→ユーザーは対処できない
・Requestで受け取ったデータと、DBのデータが合致するか確認する機能が必要。
View.pyでtry文を追加する。

loginView
おっきな流れはsignupと同じだよ。
何をやっているのか
 ・authenticate:Djangoの機能、ユーザの特徴を取得する
 ・login:authenticateで得た値を突合する

redirectとrenderの違い
render:urlが変わらない→レスポンスとしては返す。ただ、Requestしない!
redirect:名前から、Requestし直す。
これを意識するとわかりやすい構成になる。

ListView
基本的には昨日と同様
・model.pyを作り、マイグレーション
・admin.pyにregisterの1文を追加する

Imageファイルの取扱
通常だと、ちゃんと保存ができない!!!
→Settingを編集する
画像は一個一個のものであるため、開発環境だけに設定する
Pythonの記述はスペースがシビアに判定されるので悲しくなる。

CSSファイルの取扱
外部ファイルに外だしをする
→setting.pyに書き込む必要あり。
imageと同様にフォルダを切る。
htmlに以下を書き込む

{% load static %}

ListView2
・FBVでもリスト表示は簡単だった。
ビューでobjectを取得すれば楽勝!
(しかし、データの取得に条件分岐が必要な場合はどうしたほうがいいのかね。。。。
→objectに対して、getすればいいのだ、、、!!)
・ログインしているかの判定
 login_required
 →デコレータ処理を追加する、Setting.pyにLOGIN_URLを書き込む

いいね機能
リンククリック→ファンクション呼び出す→DBに書き込みを行う
htmlの編集:URL「good」にリダイレクトする
ファンクション呼び出す:googfunc呼び出し
DBに書き込みを行う:objectにsaveする
※起動機能は「view内の条件分岐」を変える

CreateViewの実装
CreateViewは、実装するときに必要な機能はCBVで実装できる。

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