【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で実装できる。
この記事が気に入ったらサポートをしてみませんか?