大人気フレームワーク「Django」でWeb開発を行うための実践的な開発手法が満載!
現場で役立つ実践的なノウハウを徹底解説
【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位入賞。
第1章 コードスニペット共有サイトの開発
1.1 Djangoプロジェクトのはじめかた
1.2 Djangoアプリケーションの作成とHello World
1.3 データベースとの連携
1.4 テンプレートエンジンによるHTMLの生成
1.5 テンプレートの部品化とCSSの適用
1.6 ユーザー認証をサクッと作る
1.7 宿題:コメント機能の実装
第2章 モデル定義とクエリ操作
2.1 Django ORMによるモデル定義
2.2 Django ORMによるクエリ操作
2.3 N+1問題の概要とその対策
2.4 インデックスによる効率的なデータの取り出し
2.5 マイグレーション
2.6 SQLインジェクションによる攻撃を理解する
第3章 ビュー
3.1 ビューの基本
3.2 再利用性の高いビューの開発
3.3 URLディスパッチャー
3.4 HttpRequestとHttpResponseを使いこなす
第4章 テンプレートエンジン
4.1 Djangoテンプレート言語の基本
4.2 テンプレートエンジンの設定
4.3 テンプレートタグとテンプレートフィルターを使いこなす
4.4 テンプレートのセキュリティ対策
第5章 フォーム
5.1 フォームの基本と全体像
5.2 バリデーション処理のカスタマイズ
5.3 HTMLフォーム生成時のカスタマイズ
5.4 ModelFormをいつ使うべきか、あるいはいつ使うべきではないか
5.5 クロスサイトリクエストフォージェリ(CSRF)による攻撃を理解する
第6章 テスト
6.1 テストの観点と考え方
6.2 実践的なテストテクニック
6.3 テストに関連するツールチェイン
6.4 まとめ:さらにテストを使いこなすために
第7章 認証・認可
7.1 認証処理の基本とカスタマイズ
7.2 ユーザーモデルのカスタマイズ
7.3 権限管理(認可)
7.4 パターン別認証処理実装ガイド
第8章 Web API開発
8.1 Django REST FrameworkによるJSON APIの実装
8.2 Web APIの設計プラクティス
第9章 ケース別レシピ集
9.1 静的ファイルの配信
9.2 メッセージフレームワーク
9.3 国際化(多言語対応)
9.4 Eメールの送信
9.5 GunicornやuWSGIを使用する
9.6 デーモン管理ツールの導入
9.7 NginxをHTTP Proxyとして導入する
9.8 キャッシュフレームワーク
9.9 設定ファイルの分割
9.10 Django管理サイトのカスタマイズ
9.11 管理コマンドの作成
Appendix 関連リソース
A.1 参考資料(書籍)
A.2 参考資料(Webサイト)
A.3 本書で紹介したサードパーティーライブラリ一覧