django learning part2

21
Django 基基 IT 基基基 紗紗紗 基基基基基 #django_learning

Upload: yusuke-muraoka

Post on 24-May-2015

547 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Django learning Part2

Django基礎IT寺子屋 紗音寺 ハンズオン

#django_learning

Page 2: Django learning Part2

おまえだれよ@jbking

django-ja, pylons-ja

群馬県の東毛在住

Page 3: Django learning Part2

タイムスケジュール

• 13:00 〜 おさらい• 13:15 〜 今日の範囲について• 13:30 〜 ハンズオン• 15:00 〜 ハッカソンとフォローアップ

Page 4: Django learning Part2

おさらい

• 前回なにやったか• http://www.slideshare.net/jbking/django-learning

• インストールしてますか?• Nitrous.io https://www.nitrous.io/join/hea6JcleeFc

• コード• https://github.com/jbking/django_learning.git

Page 5: Django learning Part2

今日の範囲

• ビュー• ファイルアップロード

Page 6: Django learning Part2

ビュー

Page 7: Django learning Part2

ビューの役割

リクエストを受け取る入力データのチェック

ドメインロジックを呼び出すモデルを操作

レスポンスを返す

View

Form

Model

Model Form

Page 8: Django learning Part2

基本

リクエストを受け取る 

レスポンスを返す

ドメインロジックを呼び出す(Postオブジェクトを updated_atの降順で取り出す )

Page 9: Django learning Part2

ざっと処理の流れを復習

Page 10: Django learning Part2

クラスベースドビュー

Page 11: Django learning Part2

クラスベースドビュー存在理由

ビューの処理はパターン化できる DRY

必要なコードだけ記述テスト範囲を絞れる

https://docs.djangoproject.com/en/1.5/topics/class-based-views/

Page 12: Django learning Part2

ファイルアップロードビューの応用

Page 13: Django learning Part2

Django使ってるのだからラクしましょう

モデルにフィールドを追加 DBマイグレーション。。。モデルフォームにフィールドを追加

アップロードしたファイルを読めるようにする MEDIA_URL, MEDIA_ROOTの設定 URLの追加

送信フォームのエンコードタイプの変更

モデルフィールドの URLをテンプレートに入れる

やること

Page 14: Django learning Part2

Django使ってるのだからラクしましょう

アップロードされるファイルのパース multipart

ファイル転送

保存方法の指定

ファイルのバリデーション

やらないこと

Page 15: Django learning Part2

モデルにフィールドの追加ストレージの指定

Page 16: Django learning Part2

アップロードしたファイルを読めるようにする

settings.py

urls.py

Page 17: Django learning Part2

送信フォームのエンコードタイプの変更

post_form.html

Page 18: Django learning Part2

モデルフィールドの URLをテンプレートに入れる

post_detail.html

FileFieldから派生したフィールドは urlプロパティをもつ

Page 19: Django learning Part2

まとめ

1. ビューの役割

2. ビューを作ってみた

3. ファイルアップロードはどうやるか

Page 20: Django learning Part2

アンケートこれから先のこと

Page 21: Django learning Part2

Hack-a-thonLet’s hack!