Django基礎
IT寺子屋 紗音寺 ハンズオン
#django_learning
おまえだれよ
@jbking
django-ja, pylons-ja
群馬県の東毛在住
タイムスケジュール
• 13:00 〜 おさらい
• 13:15 〜 今日の範囲について
• 13:30 〜 ハンズオン
• 15:00 〜 ハッカソンとフォローアップ
おさらい
• 前回なにやったか
• http://www.slideshare.net/jbking/django-learning
• インストールしてますか?
• Nitrous.io https://www.nitrous.io/join/hea6JcleeFc
• コード
• https://github.com/jbking/django_learning.git
今日の範囲
• ビュー
• ファイルアップロード
ビュー
ビューの役割
 リクエストを受け取る
 入力データのチェック
 ドメインロジックを呼び出す
 モデルを操作
 レスポンスを返す
View
Model
Model
Form
基本
リクエストを受け取る
レスポンスを返す
ドメインロジックを呼び出す
(Postオブジェクトをupdated_atの降順で取り出す)
ざっと処理の流れを復習
クラスベースドビュー
クラスベースドビュー
存在理由
 ビューの処理はパターン化できる
 DRY
 必要なコードだけ記述
 テスト範囲を絞れる
https://docs.djangoproject.com/en/1.5/topics/class-based-views/
ファイルアップロード
ビューの応用
Django使ってるのだから
ラクしましょう
 モデルにフィールドを追加
 DBマイグレーション。。。
 モデルフォームにフィールドを追加
 アップロードしたファイルを読めるようにする
 MEDIA_URL, MEDIA_ROOTの設定
 URLの追加
 送信フォームのエンコードタイプの変更
 モデルフィールドのURLをテンプレートに入れる
やること
Django使ってるのだから
ラクしましょう
 アップロードされるファイルのパース
 multipart
 ファイル転送
 保存方法の指定
 ファイルのバリデーション
やらないこと
モデルにフィールドの追加
ストレージの指定
アップロードしたファイル
を読めるようにする
settings.py
urls.py
送信フォームのエンコード
タイプの変更
post_form.html
モデルフィールドのURLを
テンプレートに入れる
post_detail.html
FileFieldから派生したフィールドはurlプロパティをもつ
まとめ
1. ビューの役割
2. ビューを作ってみた
3. ファイルアップロードはどうやるか
アンケート
これから先のこと
Hack-a-thon
Let’s hack!

Django learning Part2