SlideShare a Scribd company logo
1 of 21
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!

More Related Content

What's hot

Webクローリング&スクレイピングの最前線 公開用
Webクローリング&スクレイピングの最前線 公開用Webクローリング&スクレイピングの最前線 公開用
Webクローリング&スクレイピングの最前線 公開用
Lumin Hacker
 
オープンデータのためのスクレイピング
オープンデータのためのスクレイピングオープンデータのためのスクレイピング
オープンデータのためのスクレイピング
直之 伊藤
 
映画にでてくるハッカーになりたい - YAPC Asia 2010
映画にでてくるハッカーになりたい - YAPC Asia 2010映画にでてくるハッカーになりたい - YAPC Asia 2010
映画にでてくるハッカーになりたい - YAPC Asia 2010
Hiroh Satoh
 

What's hot (20)

Python と Xpath で ウェブからデータをあつめる
Python と Xpath で ウェブからデータをあつめるPython と Xpath で ウェブからデータをあつめる
Python と Xpath で ウェブからデータをあつめる
 
Pythonによる非同期プログラミング入門
Pythonによる非同期プログラミング入門Pythonによる非同期プログラミング入門
Pythonによる非同期プログラミング入門
 
DBエンジニアに必要だったPythonのスキル
DBエンジニアに必要だったPythonのスキルDBエンジニアに必要だったPythonのスキル
DBエンジニアに必要だったPythonのスキル
 
bottleで始めるWEBアプリの最初の一歩
bottleで始めるWEBアプリの最初の一歩bottleで始めるWEBアプリの最初の一歩
bottleで始めるWEBアプリの最初の一歩
 
Django pgroonga
Django pgroongaDjango pgroonga
Django pgroonga
 
いろいろ考えると日本語の全文検索もMySQLがいいね!
いろいろ考えると日本語の全文検索もMySQLがいいね!いろいろ考えると日本語の全文検索もMySQLがいいね!
いろいろ考えると日本語の全文検索もMySQLがいいね!
 
TensorFlowを使ってテキストをクラス分類してみたら精度96.8%の分類器を簡単に得ることができた話
TensorFlowを使ってテキストをクラス分類してみたら精度96.8%の分類器を簡単に得ることができた話TensorFlowを使ってテキストをクラス分類してみたら精度96.8%の分類器を簡単に得ることができた話
TensorFlowを使ってテキストをクラス分類してみたら精度96.8%の分類器を簡単に得ることができた話
 
Djangoによるスマホアプリバックエンドの実装
Djangoによるスマホアプリバックエンドの実装Djangoによるスマホアプリバックエンドの実装
Djangoによるスマホアプリバックエンドの実装
 
プロダクト開発してわかったDjangoの深〜いパーミッション管理の話 @ PyconJP2017
プロダクト開発してわかったDjangoの深〜いパーミッション管理の話 @ PyconJP2017プロダクト開発してわかったDjangoの深〜いパーミッション管理の話 @ PyconJP2017
プロダクト開発してわかったDjangoの深〜いパーミッション管理の話 @ PyconJP2017
 
便利なHerokuと active recordの 速度改善tips
便利なHerokuと active recordの 速度改善tips便利なHerokuと active recordの 速度改善tips
便利なHerokuと active recordの 速度改善tips
 
appengine活用事例資料@TDDBC札幌2.1
appengine活用事例資料@TDDBC札幌2.1appengine活用事例資料@TDDBC札幌2.1
appengine活用事例資料@TDDBC札幌2.1
 
続Pythonによるwebスクレイピング入門
続Pythonによるwebスクレイピング入門続Pythonによるwebスクレイピング入門
続Pythonによるwebスクレイピング入門
 
捗るリコメンドシステムの裏事情(ハッカドール)
捗るリコメンドシステムの裏事情(ハッカドール)捗るリコメンドシステムの裏事情(ハッカドール)
捗るリコメンドシステムの裏事情(ハッカドール)
 
ウェブから情報をあつめる
ウェブから情報をあつめるウェブから情報をあつめる
ウェブから情報をあつめる
 
Webクローリング&スクレイピングの最前線 公開用
Webクローリング&スクレイピングの最前線 公開用Webクローリング&スクレイピングの最前線 公開用
Webクローリング&スクレイピングの最前線 公開用
 
オープンデータのためのスクレイピング
オープンデータのためのスクレイピングオープンデータのためのスクレイピング
オープンデータのためのスクレイピング
 
OpenShift のある生活
OpenShift のある生活OpenShift のある生活
OpenShift のある生活
 
映画にでてくるハッカーになりたい - YAPC Asia 2010
映画にでてくるハッカーになりたい - YAPC Asia 2010映画にでてくるハッカーになりたい - YAPC Asia 2010
映画にでてくるハッカーになりたい - YAPC Asia 2010
 
buddyのユーザ認証周りのデータ構造 - 使われているデータの取り回しについてのお話
buddyのユーザ認証周りのデータ構造 - 使われているデータの取り回しについてのお話buddyのユーザ認証周りのデータ構造 - 使われているデータの取り回しについてのお話
buddyのユーザ認証周りのデータ構造 - 使われているデータの取り回しについてのお話
 
じっくりコトコト煮込んだJavaスープ
じっくりコトコト煮込んだJavaスープじっくりコトコト煮込んだJavaスープ
じっくりコトコト煮込んだJavaスープ
 

Viewers also liked

mixiアプリ『the Actress』運用にあたっての課題へのチャレンジ
mixiアプリ『the Actress』運用にあたっての課題へのチャレンジmixiアプリ『the Actress』運用にあたっての課題へのチャレンジ
mixiアプリ『the Actress』運用にあたっての課題へのチャレンジ
Shinya Okano
 
Python札幌 2012/06/17
Python札幌 2012/06/17Python札幌 2012/06/17
Python札幌 2012/06/17
Shinya Okano
 
パッケージングの今と未来
パッケージングの今と未来パッケージングの今と未来
パッケージングの今と未来
Atsushi Odagiri
 
Python エンジニアの作り方 2011.08 #pyconjp
Python エンジニアの作り方 2011.08 #pyconjpPython エンジニアの作り方 2011.08 #pyconjp
Python エンジニアの作り方 2011.08 #pyconjp
Takeshi Komiya
 

Viewers also liked (20)

Pythonによるwebアプリケーション入門 - Django編-
Pythonによるwebアプリケーション入門 - Django編- Pythonによるwebアプリケーション入門 - Django編-
Pythonによるwebアプリケーション入門 - Django編-
 
Djangoフレームワークの紹介 OSC2015北海道
Djangoフレームワークの紹介 OSC2015北海道Djangoフレームワークの紹介 OSC2015北海道
Djangoフレームワークの紹介 OSC2015北海道
 
Webフレームワークパネル(Django) at PyConJP 2012
Webフレームワークパネル(Django) at PyConJP 2012Webフレームワークパネル(Django) at PyConJP 2012
Webフレームワークパネル(Django) at PyConJP 2012
 
Django 1.9
Django 1.9Django 1.9
Django 1.9
 
Pythonで始めるWebアプリケーション開発
Pythonで始めるWebアプリケーション開発Pythonで始めるWebアプリケーション開発
Pythonで始めるWebアプリケーション開発
 
mixiアプリ『the Actress』運用にあたっての課題へのチャレンジ
mixiアプリ『the Actress』運用にあたっての課題へのチャレンジmixiアプリ『the Actress』運用にあたっての課題へのチャレンジ
mixiアプリ『the Actress』運用にあたっての課題へのチャレンジ
 
kay-jpmobile
kay-jpmobilekay-jpmobile
kay-jpmobile
 
Python勉強会資料(MessageBoard作成)
Python勉強会資料(MessageBoard作成)Python勉強会資料(MessageBoard作成)
Python勉強会資料(MessageBoard作成)
 
Python札幌 2012/06/17
Python札幌 2012/06/17Python札幌 2012/06/17
Python札幌 2012/06/17
 
Biblnk
BiblnkBiblnk
Biblnk
 
軽量のススメ
軽量のススメ軽量のススメ
軽量のススメ
 
Django最速デバッグ指南 PyConAPAC 2013
Django最速デバッグ指南 PyConAPAC 2013Django最速デバッグ指南 PyConAPAC 2013
Django最速デバッグ指南 PyConAPAC 2013
 
hello waf, hello phoenix
hello waf, hello phoenixhello waf, hello phoenix
hello waf, hello phoenix
 
Pythonではじめる野球プログラミング - kawasaki.rb #15 2014/8/27
Pythonではじめる野球プログラミング  - kawasaki.rb #15 2014/8/27Pythonではじめる野球プログラミング  - kawasaki.rb #15 2014/8/27
Pythonではじめる野球プログラミング - kawasaki.rb #15 2014/8/27
 
Djangoの話
Djangoの話Djangoの話
Djangoの話
 
Gunma.web #24 MySQL HA
Gunma.web #24 MySQL HAGunma.web #24 MySQL HA
Gunma.web #24 MySQL HA
 
素振りのススメ at Python入門者の集い
素振りのススメ at Python入門者の集い素振りのススメ at Python入門者の集い
素振りのススメ at Python入門者の集い
 
パッケージングの今と未来
パッケージングの今と未来パッケージングの今と未来
パッケージングの今と未来
 
今年使ってみて良かった、Pythonモジュール、パッケージ、ツール
今年使ってみて良かった、Pythonモジュール、パッケージ、ツール今年使ってみて良かった、Pythonモジュール、パッケージ、ツール
今年使ってみて良かった、Pythonモジュール、パッケージ、ツール
 
Python エンジニアの作り方 2011.08 #pyconjp
Python エンジニアの作り方 2011.08 #pyconjpPython エンジニアの作り方 2011.08 #pyconjp
Python エンジニアの作り方 2011.08 #pyconjp
 

Similar to Django learning Part2

JJUG CCC 2011 Fall / Web test automation with Geb and Spock
JJUG CCC 2011 Fall / Web test automation with Geb and SpockJJUG CCC 2011 Fall / Web test automation with Geb and Spock
JJUG CCC 2011 Fall / Web test automation with Geb and Spock
Nobuhiro Sue
 

Similar to Django learning Part2 (7)

PyCon APAC 2013 Web Secure Coding
PyCon APAC 2013 Web Secure CodingPyCon APAC 2013 Web Secure Coding
PyCon APAC 2013 Web Secure Coding
 
DjangoのORMことはじめ
DjangoのORMことはじめDjangoのORMことはじめ
DjangoのORMことはじめ
 
210630 python
210630 python210630 python
210630 python
 
使えるDjango1.4
使えるDjango1.4使えるDjango1.4
使えるDjango1.4
 
2014/08/10 Ippothon go編
2014/08/10 Ippothon go編2014/08/10 Ippothon go編
2014/08/10 Ippothon go編
 
JJUG CCC 2011 Fall / Web test automation with Geb and Spock
JJUG CCC 2011 Fall / Web test automation with Geb and SpockJJUG CCC 2011 Fall / Web test automation with Geb and Spock
JJUG CCC 2011 Fall / Web test automation with Geb and Spock
 
Pythonではじめる野球プログラミング PyCon JP 2014 9/14 Talk Session
Pythonではじめる野球プログラミング PyCon JP 2014 9/14 Talk SessionPythonではじめる野球プログラミング PyCon JP 2014 9/14 Talk Session
Pythonではじめる野球プログラミング PyCon JP 2014 9/14 Talk Session
 

More from Yusuke Muraoka (13)

いかにして問題をとくか
いかにして問題をとくかいかにして問題をとくか
いかにして問題をとくか
 
Pythonistaで始めるiOSプロトタイプ開発
Pythonistaで始めるiOSプロトタイプ開発Pythonistaで始めるiOSプロトタイプ開発
Pythonistaで始めるiOSプロトタイプ開発
 
私のPythonとの関わりかた
私のPythonとの関わりかた私のPythonとの関わりかた
私のPythonとの関わりかた
 
Substance D world-plone-day-2017
Substance D world-plone-day-2017Substance D world-plone-day-2017
Substance D world-plone-day-2017
 
Pythonistaの使い方
Pythonistaの使い方Pythonistaの使い方
Pythonistaの使い方
 
The Substance D - Plone Symposium Tokyo 2015
The Substance D - Plone Symposium Tokyo 2015The Substance D - Plone Symposium Tokyo 2015
The Substance D - Plone Symposium Tokyo 2015
 
プロパティディスクリプタとその拡張ライブラリ
プロパティディスクリプタとその拡張ライブラリプロパティディスクリプタとその拡張ライブラリ
プロパティディスクリプタとその拡張ライブラリ
 
Poolboy
PoolboyPoolboy
Poolboy
 
Pyramid Security
Pyramid SecurityPyramid Security
Pyramid Security
 
Some about chef
Some about chefSome about chef
Some about chef
 
Debug it-python-hack-a-thon-2011.02
Debug it-python-hack-a-thon-2011.02Debug it-python-hack-a-thon-2011.02
Debug it-python-hack-a-thon-2011.02
 
App Engineと非同期とテストと私
App Engineと非同期とテストと私App Engineと非同期とテストと私
App Engineと非同期とテストと私
 
Can A Python Go Beyond The Python
Can A Python Go Beyond The PythonCan A Python Go Beyond The Python
Can A Python Go Beyond The Python
 

Django learning Part2