Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Pythonによるwebアプリケーション入門 - Django編-

24,869 views

Published on

Pythonによるwebアプリケーション入門 - Django編-

Published in: Technology
  • Be the first to comment

Pythonによるwebアプリケーション入門 - Django編-

  1. 1. Pythonによる Webアプリケーション入門 ∼Django編∼ 2015/12/09 関根裕紀 みんなのPython勉強会#7
  2. 2. 自己紹介 • 関根裕紀(せきね ひろのり) • 株式会社SQUEEZE • Twitter: @checkpoint
  3. 3. 業務でのPython • ホームシェア(民泊)などの物件の管理、ま たそれに伴う各種オペレーションを一元的に 管理するクラウドサービス を提供(Mister Suite) • 実際の業務でDjango、Scrapyを使用 • エンジニア積極採用中!
  4. 4. Pythonとの関わり(1) • PyCon JP 2014 スタッフ • PyCon JP 2015 プログラムチーム副座長 • Pythonもくもく会(主催)
  5. 5. Pythonとの関わり(2) • LLDiver • PyCon JP 2014 • Phone Symposium Tokyo 2015 • PyCon mini Hiroshima • みんなのPython勉強会#7(Today!!) • Pythonエンジニア養成読本(共著)
  6. 6. アジェンダ • PythonでのWebアプリケーション開発 • Djangoの概要 • デモ(管理サイト、アプリケーション)
  7. 7. 本日伝えたい事 • Djangoでの開発イメージ • モデル、ビュー、テンプレート • Admin機能便利!
  8. 8. Webアプリケーションとは? Webアプリケーションとは、Webサーバー上で動作 し、Webブラウザを用いて利用するアプリケーション のことである。 WebアプリケーションはWebブラウザ をクライアントとし、HTTPを通じてWebサーバーにア クセスして利用される。 ( www.weblio.jp/content/ウェブアプリケーション ) IT 用語辞典より
  9. 9. Pythonでの選択肢 • CGI • WSGI • Webアプリケーションフレームワーク
  10. 10. WSGIとは? • Webサーバーとアプリケーションの共通のイ ンターフェース仕様 • Java Servlet APIのようなもの • PEP333, PEP 3333 • 標準ライブラリにwsgiref がある
  11. 11. Webアプリケーションは複雑 • DBアクセス • テンプレート描画 • ルーティング • フォーム処理 • ファイルアップロード • セッション管理 • セキュリティ • etc…
  12. 12. Webアプリケーションフレームワーク • Webアプリの開発に必要な機能を提供 • 処理の流れをフレームワーク側で制御 • 開発者は必要な部分のみを開発 • 枠組みに乗る • クラスを作る • テンプレートを書く クラス テンプレート
  13. 13. PythonのWebフレームワーク • Pyramid • Tornado • Flask • Bottle
  14. 14. Pyramid • 小さく、早く、堅実なフレームワーク • すべての機能をフレームワーク側で用意しな い • サードパーティ製のライブラリと組み合わせ て使用する
  15. 15. Tornado • FriendFeed(現Facebook)が開発 • 非同期のネットワークI/Oライブラリ • シンプルで高速なのが特徴 • 大規模な事例
  16. 16. Flask • 軽量なアプリケーションフレームワーク • Werkzeug (WSGI utility library) • Jinja2 (Template Engine)
  17. 17. Bottle • 軽量なアプリケーションフレームワーク • 一つのPythonファイルで提供 • フレームワークの学習にも最適 • 詳細はPythonエンジニア養成読本を
  18. 18. Django • フルスタックのフレームワーク • 最新バージョンは1.9 • ドキュメント、テストが充実 • コミュニティが活発 • 大規模な事例
  19. 19. Djangoが提供する機能 • モデル • ビュー • テンプレート • フォーム • 管理サイト • セキュリティ • 国際化 • ユーザー認証 • その他
  20. 20. Djangoでの開発の流れ • プロジェクトの作成 • アプリケーションの作成 • 初期設定 (settings.py) • モデルの作成 • ビューの作成 • テンプレートの作成 • ルーティングの定義
  21. 21. djangoのインストール
  22. 22. プロジェクトの作成
  23. 23. アプリケーションの作成
  24. 24. HelloWorld
  25. 25. 開発サーバーの起動
  26. 26. サンプル紹介 • ブログ管理アプリケーション • ブログ • 投稿 • 管理サイト • Github(サンプルソース) • https://github.com/checkpoint/django_sample
  27. 27. 最終的なイメージ
  28. 28. 管理サイトの流れ • モデルの作成 • 管理画面の定義
  29. 29. モデルの定義 ユーザ タイトル 本文 作成日時 更新日時
  30. 30. モデルの定義 ブログ タイトル 本文 カテゴリ 下書き 公開日時 作成日時 更新日時
  31. 31. マイグレーション
  32. 32. 管理サイトの設定
  33. 33. 管理サイトデモ
  34. 34. アプリケーションの流れ ブラウザ ビュー (コントローラー) モデル (DBアクセス) テンプレート (画面の表示)
  35. 35. アプリケーション作成の流れ • モデルの作成 • フォームの作成 • ビューの作成 • テンプレートの作成 • ルーティングの定義
  36. 36. 作成サイトデモ
  37. 37. 便利なライブラリ • django-debug-toolbar • Django REST framework
  38. 38. おすすめサイト • https://www.djangoproject.com/ • https://www.djangopackages.com/ • http://qiita.com/kaki_k/items/ 511611cadac1d0c69c54
  39. 39. おすすめコミュニティ • Python mini Hack-a-thon • TokyoDjangoMeetup • Pythonもくもく会
  40. 40. まとめ • Djangoでの開発イメージ • Admin機能便利! • モデル、ビュー、テンプレート
  41. 41. 参考資料 • https://www.djangoproject.com/ • https://www.python.org/dev/peps/ pep-0333/ • https://www.python.org/dev/peps/ pep-3333/ • http://gihyo.jp/dev/feature/01/wsgi
  42. 42. 宣伝 • PyCon JP 2016 • スタッフ募集中 • 株式会社 SQUEEZE • エンジニア募集中!
  43. 43. ご静聴ありがとうございました

×