ISBN 9784798153957

実践Django Pythonによる本格Webアプリケーション開発

実践Django Pythonによる本格Webアプリケーション開発
著者
芝田 将
出版社
翔泳社
刊行
2021-07

概要

DjangoでWebアプリを業務水準で設計・実装する

想定読者

PythonとDjangoの基礎を一通り学び終え、実務レベルの設計・テスト・セキュリティ対策を身につけたい中級エンジニア

こんな人には向いていない

  • PythonやHTTPの基礎をまだ学んでいる入門者(前提知識不足で詰まる箇所が多い)
  • すでに本番DjangoアプリをN+1対策・インデックスチューニングまで含めて運用している上級者(基本事項の比重が大きい)
  • フロントエンド中心の開発者でバックエンドのORMやSQL最適化に興味がない人

読了後にできるようになること

  • N+1問題の発生原理と、select_related / prefetch_relatedを使った解消パターンを選択できる
  • RDBインデックスの設計指針を理解し、Django ORM経由でSQLを最適化できる
  • Django標準の認証システムをカスタマイズし、業務要件に合ったユーザーモデルを設計できる
  • Django REST FrameworkでページネーションやフィルタリングをAPI設計に組み込める
  • CSRF・SQLインジェクション等の脆弱性がなぜ発生するかを理解し、Djangoの防御機構を正しく活用できる
  • TestCaseクラスを使ったモデル・ビュー・フォームの実践的なテスト手法を実装できる

本書のキー概念(章解説)

  • 第 1 章 コードスニペット共有サイトの開発 — チュートリアル形式で全体像を掴む章。既にDjango基礎を知っている読者は流し読みで可
  • 第 2 章 モデル定義とクエリ操作 — ORM設計の核心。N+1問題の解説はこの章に集中しており、実務直結度が高い
  • 第 3 章 ビュー
  • 第 4 章 テンプレートエンジン
  • 第 5 章 フォーム
  • 第 6 章 テスト — モデル・ビュー・フォームを対象にしたDjango固有のテスト手法を網羅。CI導入前に読む価値あり
  • 第 7 章 認証・認可 — ユーザーモデルのカスタマイズとパーミッション設計の実践例。セキュリティ要件が厳しいプロジェクトで参照価値が高い
  • 第 8 章 Web API開発 — Django REST Frameworkを用いたAPI設計とページネーション実装を解説
  • 第 9 章 ケース別レシピ集 — 静的ファイル・国際化・メール送信・キャッシュ・admin カスタマイズ等11項目。必要な箇所を辞書的に参照する使い方が効果的

ハイライト

  • N+1問題の理解や対策方法、RDBのインデックスチューニングによるSQLの最適化、Web APIの実践的なページネーションの実装方法、CSRFやSQLインジェクションのような攻撃を防ぐためのセキュリティに関する知識など、高度かつ重要なトピックをDjangoのコントリビュート経験もある筆者が分かりやすく解説します(本書が入門書ではなく実務踏み込み型であることを最も端的に示す一文)

外部からの言及

  • 会社を辞めてSNSを個人開発した開発者が、Django学習の参照文献として本書を挙げており、現場で通用するWebアプリを作る過程で実際に使われた書籍として位置づけられている(qiita)

編集メモ

Qiita上での本書直接言及は確認された範囲で1件(likes 151の開発体験記で参照文献として列挙)。Djangoコントリビューターである著者の実績と、N+1・セキュリティ・テストといった実務上の重要トピックを一冊でカバーする構成から、実務向け良書と判定

読む前に押さえておきたいこと

  • Pythonの基本文法(クラス・デコレータ・例外処理)を自力でコードを書けるレベル
  • HTTPリクエスト/レスポンス・SQLの基本的なCRUD操作の理解
  • Djangoの公式チュートリアルまたは同等の入門書を一度完走していること

学習のコツ

  • 2章(モデル・クエリ)と7章(認証・認可)は実務案件で最も参照頻度が高い。全体を通読する前にこの2章を先に読み込むと、後続の章の文脈が掴みやすい
  • 9章のレシピ集はリファレンスとして使う章で、通読より目次から逆引きするスタイルが適している
  • 6章のテストコードは、自分が開発中のプロジェクトに当てはめながら手を動かすと定着が速い。写経だけで終わらせず、自分のモデルに置き換えて書いてみる
  • 著者はDjangoコントリビューターであるため、ORM内部の動作に関する説明はドキュメントより踏み込んでいる。なぜそう動くかを理解したい箇所で精読する価値がある
出版社による内容紹介

現場で役立つ実践的なノウハウを徹底解説 【Djangoとは】 Djangoは、Pythonで人気のあるフルスタックWebフレームワークです。 強力なテンプレートエンジンやO/Rマッパーに加え、ユーザー認証や国際化、管理画面など、Webアプリケーション開発で必要になるありとあらゆる機能を高い柔軟性で提供し、高速なWebアプリケーション開発を可能にします。 【本書のポイント】 本書は、業務で必ず役に立つ実践的なDjangoの解説書です。モデルやビュー、テンプレートといった基本コンポーネントの解説はもちろん、Djangoの実践的なテストテクニック、ユーザーモデルのカスタマイズ方法、認証処理のベストプラクティスなど、Web開発において必ず知っておくべき内容を幅広く取り上げました。 また実際に業務でWebアプリケーション開発に取り組む際には、これらの理解だけでは不十分なこともしばしばあります。 N+1問題の理解や対策方法、RDBのインデックスチューニングによるSQLの最適化、Web APIの実践的なページネーションの実装方法、CSRFやSQLインジェクションのような攻撃を防ぐためのセキュリティに関する知識など、高度かつ重要なトピックをDjangoのコントリビュート経験もある筆者が分かりやすく解説します。 【本書のゴール】 Djangoを使ったWebアプリケーション開発のベストプラクティスを把握し、業務に活かせる実践的な知識を身につけることを目指します。 【Djangoのバージョン】 Django 3.2 LTS対応(2024年4月までサポートされるバージョン) 【著者プロフィール】 芝田 将(しばた・まさし) 2017年株式会社サイバーエージェントに新卒入社後、ABEMA配信チームにて動画ストリーミングサーバーやトランスコーダーの開発を担当。 2019年より研究組織AI Labに異動し、機械学習モデルのハイパーパラメーター最適化ソフトウェアの研究開発に従事。 また2020年よりPython領域のDeveloper Expertsに選出される。OSS開発では、go-promptやkube-promptの開発者として知られる。 自動ハイパーパラメータ最適化フレームワークOptunaコミッター。Kubeflow/Katibレビュアー。Django, Gunicornコントリビューター。 共訳書『エキスパートPythonプログラミング改訂2版』(KADOKAWA、2018/2)。PyCon JP、Django Congress JPでの登壇経験多数。 NeurIPS 2020 Black-Box Optimization Challenge 世界5位入賞。

この本がどの学習段階で役立つかは、 関連する ロードマップ から確認できます。

質問に答えるだけで、
あなたに合う専門書が見つかる

IT・デザイン・士業・医療・経理・教育・研究 ほか、あらゆる分野の専門書と 「読む順序」(学習ロードマップ)を収録。何を選べばいいか分からなくても、 いくつかの質問に答えるだけでたどり着けます。