SlideShare a Scribd company logo
みんなのPython勉強会 #72
実践Django
Masashi Shibata
株式会社 CyberAgent AI Lab
Masashi SHIBATA
c-bata c_bata_
! "
• CyberAgent Developer Experts (Python)
• go-prompt, kube-prompt作者
• Optunaコミッター, Kubeflow/Katibレビュアー
• Django, Gunicornコントリビューター
• 著書:実践Django Pythonによる本格Web
アプリケーション開発 (翔泳社)
• 訳書:エキスパートPythonプログラミング
改訂2版 / 改訂3版 (KADOKAWA)
エキスパートPythonプログラミング 改訂
3版については、 @shimizukawa さんが
このあと話すのでお楽しみに!
• タイトル:実践Django Pythonによる本格Webアプリケーション開発
• 出版社/発売日:翔泳社 2021/07/19より発売
• 主な対象読者
• Pythonがある程度書けて、簡単なWebアプリケーションの開発経験がある(言語やフ
レームワークを問わない)
• 他の本で解説されていないような踏み込んだ内容も比較的多く、類書に比べるとすこ
し難しめの本になっています。
• 対象バージョン:Django 3.2 LTS, Python 3.9
実践Django
発売日から2週間半で増刷決定しました🙏
お買い上げくださった方ありがとうございます…!
今日話すこと
実践Djangoの構成や各章のこだわりポイントを紹介しつつ、
本書の読者に向けて、「これからどういう勉強の仕方・知識の積み
上げ方をしてほしいか」を自身の経験も交えつつお話します。
本書の構成と各章の読み方
こだわりポイント
1章がチュートリアルで、それ以降の章はトピック別の内容を扱っています。
• 2章 モデル定義とクエリ操作
• 3章 ビュー
• 4章 テンプレートエンジン
• 5章 フォーム
• 6章 テスト
• 7章 認証・認可
• 8章 Web API開発 (Django REST Framework)
本書の構成
本書の顔とも言える章
• 学生時代の自分が最も効率的にDjangoを
習得できるように設計
• ユニットテストの書き方および考え方を
一緒に解説する
• 途中で飽きないボリューム
• 本質的に重要じゃないところは楽をする
(Bootstrap5の利用)
1章 チュートリアル
学生時代の自分が独学で最も苦労した内容が
このDBまわりの勉強でした。
• Django公式ドキュメントでは詳しく扱われ
ない
• 独学もなかなか難しいトピックを多く扱う
• Djangoユーザー以外にも広くおすすめした
い内容を詰め込んでいます
2章 モデル定義とクエリ操作
ビューの基本とリクエストオブジェクト
/レスポンスオブジェクトについて解説
• ビューは役割と呼び出しの流れを抑え
ておきましょう
• 2章とかに比べるとそれほど難しい内
容はありません
• フレームワークをただ使うだけだと理
解が難しい機能があるので、そのあた
りはHTTP/1.1の基礎知識とともに詳
しく解説を入れています。
3章 ビュー
正直、そこまで解説することがありません...
• テンプレート上で複雑なロジックを持たせ
ると、テストが難しくなるなど、一般的に
あまり推奨されないことを覚えておいてく
ださい
• テンプレートタグやテンプレートフィル
ターはライブラリ開発者などでなければ、
それほど出番はないと思います
4章 テンプレートエンジン
バリデーションや正規化、HTMLの生成
など多くの役割を持ったコンポーネント
• ModelFormという簡単なフォームを作
るときにとても便利な機能を中心に解
説しています。
• リッチな画面を作ろうとするとJSを使
うことも近年は多いため、あまり複雑
な機能はあえて解説していません。
5章 フォーム
独学が難しいテスト戦略やテクニック
について解説しています。
• どういうテストを書くべきかというの
はなかなか説明が難しいのですが、筆
者の考え方をまとめました。
• どういうテストを書くべきではないか
というのも知っておくべきで、いくつ
かのアンチパターンを紹介しています
• Django開発者に限らず読んでほしい
章となっています。
6章 テスト
Djangoにおいて最も複雑なトピックの1つ
• 他の多くのフレームワークと違い、
Djangoにはユーザーモデルがフレーム
ワーク側で定義されています
• ユーザーモデルに乗っかる形で管理画面
を始めとする便利な機能が実装されてい
るため、カスタマイズはやや大変です
• 類書で解説されていないような注意点も
多く扱っているので、読者全員ぜひ読ん
でほしい内容となっています。
7章 認証・認可
Djangoとあわせてよく利用されるDjango
REST Frameworkの解説の章
• 公式ドキュメントのクオリティが高く、
正直あまり解説する余地がありません
• 1章 チュートリアルで作成したアプリ
ケーションにWeb APIを実装
• ページネーションやJWT、スロットリン
グなど、公式ドキュメントでは十分に解
説されていないトピックを補足的に扱っ
ています
8章 Web API開発
• 2-8章のどこにも該当しなかったトピッ
クを扱いました
• 気になるトピックがあれば辞書的に読ん
でみてください
9章 ケース別レシピ集
• Djangoの開発経験が浅い方は1章からはじめてみてください
• すでに利用経験がある方は、勉強したいトピックを選んで取り組んで
みてください。
• 特に「2章 モデル定義とクエリ操作」や「6章 テスト」、「7章 認証
認可」には、Django中級者も含めて読者全員に読んでほしい内容が
多くつまっています。
本書の読み方まとめ
本書の読者やプロのWeb開発者となるために
勉強中の方に大事にしてほしいこと
独学だと勉強が難しいところはいっぱいある。
• ユニットテストをどうかけばいいのかがよくわからない
• ユニットテストの書き方について調べると、出てきた例があまりにも簡単。結果が
自明すぎてテストを書く嬉しさも分からない。
• RDBのインデックスをどこに貼るべきか分からない。
• Djangoのドキュメントを見ても db_index オプションを指定するとインデックスが
貼れるということまでしか分からずどこにどう貼るべきか分からない。
学生時代に初めて開発のアルバイトで苦労したこと
自分もまだ(ギリギリ)20代中盤で今後のキャリアの選択肢もまだまだ広
いので、10年後や20年後に向けて知識を積み上げていきたい。
• 自分自身、学生時代はDjangoの開発アルバイト
• → 就職してからはGoで動画の配信プロトコル/サーバー等を実装
• → 現在は研究チームに異動して、機械学習関連のOSS開発
  (& 社内向けのシステムをDjangoで書いたり)
• 表面的な理解で終わらせるのはもったいない
知識の積み上げることの重要性
どれもよく大事だよねと言われているかもしれませんが、Web開発について勉強
していると覚えることが多くて見落としがちな気がしています。
1. 言語やフレームワークに依存しない部分まで掘り下げる
例: ORMの使い方だけでなくSQLやインデックスチューニングを勉強する。Webフレー
ムワークを実装してみる、コードを読んでみる。本書の解説でもセキュリティ周り
の話などは「Djangoの実装はこうなっています」と一部紹介しています。
2. OSSのコードを読む、開発に参加する
Web開発をやる上で、コードから学べることが本当に多い(と自分は思っています)。
業務で開発しているコードだけでなく、多くのプロジェクトのコードを読み開発に参加
してみる。
自分が意識してきたこと
• 今日紹介した各章の読み方を参考にぜひ読んでみてください!
• 本書の中で紹介したコードはそのまま業務のシステム開発に使って
もらって大丈夫です。
• 本書が対象としているレベル感の方はぜひ、知識が積み上がるような
勉強の仕方を意識して取り組んでみてください。
まとめ
THANK YOU
ご静聴ありがとうございました

More Related Content

PDF
アジャイル開発の現在・過去・未来~今を知り、源流を訪ね、先を見据える~
PDF
マイクロにしすぎた結果がこれだよ!
PDF
PyData.Tokyo Meetup #21 講演資料「Optuna ハイパーパラメータ最適化フレームワーク」太田 健
PDF
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
PDF
推薦アルゴリズムの今までとこれから
PDF
書籍 「Python FlaskによるWebアプリ開発入門 物体検知アプリ&機械学習APIの作り方」 を通して伝えたいFlaskのプラクティス.pdf
PPTX
PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)
アジャイル開発の現在・過去・未来~今を知り、源流を訪ね、先を見据える~
マイクロにしすぎた結果がこれだよ!
PyData.Tokyo Meetup #21 講演資料「Optuna ハイパーパラメータ最適化フレームワーク」太田 健
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
推薦アルゴリズムの今までとこれから
書籍 「Python FlaskによるWebアプリ開発入門 物体検知アプリ&機械学習APIの作り方」 を通して伝えたいFlaskのプラクティス.pdf
PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)

What's hot (20)

PDF
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
PDF
トランザクションの並行実行制御 rev.2
PDF
Transformer メタサーベイ
PPTX
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
PPTX
分散システムについて語らせてくれ
PPTX
初心者向けMongoDBのキホン!
PDF
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PDF
上っ面スクラムチームにならないために気を付けたいこと
 
PDF
Python入門 : 4日間コース社内トレーニング
PDF
暗号技術の実装と数学
PDF
オープンソースのAPIゲートウェイ Kong ご紹介
PPTX
論文の書き方入門 2017
ODP
Guide To AGPL
PDF
チームメイトのためにdocstringを書こう! pyconjp2019
PDF
みんなのPython勉強会#77 パッケージングしよう
PDF
関数型プログラミングのデザインパターンひとめぐり
PDF
フロー効率性とリソース効率性について #xpjug
PDF
開発速度が速い #とは(LayerX社内資料)
PDF
なるべく作らない内製のために~「作る」から「選んでつなぐ」へ~
PDF
見やすいプレゼン資料の作り方 - リニューアル増量版
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
トランザクションの並行実行制御 rev.2
Transformer メタサーベイ
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
分散システムについて語らせてくれ
初心者向けMongoDBのキホン!
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
上っ面スクラムチームにならないために気を付けたいこと
 
Python入門 : 4日間コース社内トレーニング
暗号技術の実装と数学
オープンソースのAPIゲートウェイ Kong ご紹介
論文の書き方入門 2017
Guide To AGPL
チームメイトのためにdocstringを書こう! pyconjp2019
みんなのPython勉強会#77 パッケージングしよう
関数型プログラミングのデザインパターンひとめぐり
フロー効率性とリソース効率性について #xpjug
開発速度が速い #とは(LayerX社内資料)
なるべく作らない内製のために~「作る」から「選んでつなぐ」へ~
見やすいプレゼン資料の作り方 - リニューアル増量版
Ad

Similar to 実践Djangoの読み方 - みんなのPython勉強会 #72 (20)

PDF
Python Django Intro V0.1
PDF
Web application on menu card qrcode generator.pdf
PDF
SoC Python Discussion Group
PDF
Introduction To Python For Beginners
PDF
Python Advantages over Java .
ODP
Django On Jython (for Portland and Boulder Python user groups presentations)
PDF
Bots and News
PDF
Introduction to Python
PDF
Jython in workflow and rules engines
PDF
Django: Beyond Basics
PPTX
Creating a reasonable project boilerplate
PPTX
ModernWeb 2019: Why we replace TypeScript with Dart
PDF
Violent python
PDF
Python Experience in KKBOX Group
PDF
Google Developer Day 2010 Japan: 「App Engine 開発者コミュニティ「appengine ja night」とフレ...
PDF
Why learn python in 2017?
PPT
Java vs Python: Comparison, Features & Applications
PDF
How to Upgrade to the Newest Shiniest Django Version
PPTX
What next after learning python programming basics
Python Django Intro V0.1
Web application on menu card qrcode generator.pdf
SoC Python Discussion Group
Introduction To Python For Beginners
Python Advantages over Java .
Django On Jython (for Portland and Boulder Python user groups presentations)
Bots and News
Introduction to Python
Jython in workflow and rules engines
Django: Beyond Basics
Creating a reasonable project boilerplate
ModernWeb 2019: Why we replace TypeScript with Dart
Violent python
Python Experience in KKBOX Group
Google Developer Day 2010 Japan: 「App Engine 開発者コミュニティ「appengine ja night」とフレ...
Why learn python in 2017?
Java vs Python: Comparison, Features & Applications
How to Upgrade to the Newest Shiniest Django Version
What next after learning python programming basics
Ad

More from Masashi Shibata (20)

PDF
MLOps Case Studies: Building fast, scalable, and high-accuracy ML systems at ...
PDF
CMA-ESサンプラーによるハイパーパラメータ最適化 at Optuna Meetup #1
PDF
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
PDF
Implementing sobol's quasirandom sequence generator
PDF
DARTS: Differentiable Architecture Search at 社内論文読み会
PDF
Goptuna Distributed Bayesian Optimization Framework at Go Conference 2019 Autumn
PDF
PythonとAutoML at PyConJP 2019
PDF
Djangoアプリのデプロイに関するプラクティス / Deploy django application
PDF
Django REST Framework における API 実装プラクティス | PyCon JP 2018
PDF
Django の認証処理実装パターン / Django Authentication Patterns
PDF
RTMPのはなし - RTMP1.0の仕様とコンセプト / Concepts and Specification of RTMP
PDF
システムコールトレーサーの動作原理と実装 (Writing system call tracer for Linux/x86)
PDF
Golangにおける端末制御 リッチなターミナルUIの実現方法
PDF
How to develop a rich terminal UI application
PDF
Introduction of Feedy
PDF
Webフレームワークを作ってる話 #osakapy
PDF
Pythonのすすめ
PDF
pandasによるデータ加工時の注意点やライブラリの話
PDF
Pythonistaのためのデータ分析入門 - C4K Meetup #3
PDF
テスト駆動開発入門 - C4K Meetup#2
MLOps Case Studies: Building fast, scalable, and high-accuracy ML systems at ...
CMA-ESサンプラーによるハイパーパラメータ最適化 at Optuna Meetup #1
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
Implementing sobol's quasirandom sequence generator
DARTS: Differentiable Architecture Search at 社内論文読み会
Goptuna Distributed Bayesian Optimization Framework at Go Conference 2019 Autumn
PythonとAutoML at PyConJP 2019
Djangoアプリのデプロイに関するプラクティス / Deploy django application
Django REST Framework における API 実装プラクティス | PyCon JP 2018
Django の認証処理実装パターン / Django Authentication Patterns
RTMPのはなし - RTMP1.0の仕様とコンセプト / Concepts and Specification of RTMP
システムコールトレーサーの動作原理と実装 (Writing system call tracer for Linux/x86)
Golangにおける端末制御 リッチなターミナルUIの実現方法
How to develop a rich terminal UI application
Introduction of Feedy
Webフレームワークを作ってる話 #osakapy
Pythonのすすめ
pandasによるデータ加工時の注意点やライブラリの話
Pythonistaのためのデータ分析入門 - C4K Meetup #3
テスト駆動開発入門 - C4K Meetup#2

Recently uploaded (20)

PDF
Operating System & Kernel Study Guide-1 - converted.pdf
PPT
CRASH COURSE IN ALTERNATIVE PLUMBING CLASS
PPTX
Internet of Things (IOT) - A guide to understanding
PPTX
Sustainable Sites - Green Building Construction
PPTX
Welding lecture in detail for understanding
PPTX
Construction Project Organization Group 2.pptx
PPT
Project quality management in manufacturing
PDF
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
PPTX
MCN 401 KTU-2019-PPE KITS-MODULE 2.pptx
PDF
Model Code of Practice - Construction Work - 21102022 .pdf
PDF
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
DOCX
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
PPTX
IOT PPTs Week 10 Lecture Material.pptx of NPTEL Smart Cities contd
PDF
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
PPTX
CYBER-CRIMES AND SECURITY A guide to understanding
PPTX
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
PPTX
Recipes for Real Time Voice AI WebRTC, SLMs and Open Source Software.pptx
PPTX
bas. eng. economics group 4 presentation 1.pptx
PDF
composite construction of structures.pdf
PDF
SM_6th-Sem__Cse_Internet-of-Things.pdf IOT
Operating System & Kernel Study Guide-1 - converted.pdf
CRASH COURSE IN ALTERNATIVE PLUMBING CLASS
Internet of Things (IOT) - A guide to understanding
Sustainable Sites - Green Building Construction
Welding lecture in detail for understanding
Construction Project Organization Group 2.pptx
Project quality management in manufacturing
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
MCN 401 KTU-2019-PPE KITS-MODULE 2.pptx
Model Code of Practice - Construction Work - 21102022 .pdf
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
IOT PPTs Week 10 Lecture Material.pptx of NPTEL Smart Cities contd
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
CYBER-CRIMES AND SECURITY A guide to understanding
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
Recipes for Real Time Voice AI WebRTC, SLMs and Open Source Software.pptx
bas. eng. economics group 4 presentation 1.pptx
composite construction of structures.pdf
SM_6th-Sem__Cse_Internet-of-Things.pdf IOT

実践Djangoの読み方 - みんなのPython勉強会 #72