芝田 将 著
【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 本書で紹介したサードパーティーライブラリ一覧
刷数は奥付(書籍の最終ページ)に記載されています。
書籍の種類:
書籍の刷数:
本書に誤りまたは不十分な記述がありました。下記のとおり訂正し、お詫び申し上げます。
対象の書籍は正誤表がありません。
発生刷 | ページ数 | 書籍改訂刷 | 電子書籍訂正 | 内容 | 登録日 | ||||||
---|---|---|---|---|---|---|---|---|---|---|---|
1刷 | vi 上から11行目 |
2刷 | 済 |
|
2021.07.20 | ||||||
1刷 | vii 表1,2 |
2刷 | 済 |
|
2021.07.21 | ||||||
1刷 | 004 図1.3 |
2刷 | 済 |
|
2021.07.20 | ||||||
1刷 | 004 図1.4 |
2刷 | 済 |
|
2021.07.20 | ||||||
1刷 | 012 図1.9 |
2刷 | 済 |
|
2021.07.21 | ||||||
1刷 | 025 図1.15 |
未 | 未 |
|
2021.09.22 | ||||||
1刷 | 035 リスト1.20、リスト1.21のキャプション |
2刷 | 済 |
|
2021.07.28 | ||||||
1刷 | 058 リスト1.43のキャプション |
2刷 | 済 |
|
2021.08.04 | ||||||
1刷 | 066 リスト1.51 |
2刷 | 済 |
|
2021.08.04 | ||||||
1刷 | 075 モデルフィールドの一覧の部分 |
2刷 | 済 |
|
2021.07.28 | ||||||
1刷 | 079 リスト(上から4~5行目) |
2刷 | 済 |
|
2021.08.04 | ||||||
1刷 | 086 下部コード内(下から5行目) |
2刷 | 済 |
|
2021.08.20 | ||||||
1刷 | 092 メモ |
2刷 | 済 |
|
2021.07.28 | ||||||
1刷 | 108 2つの目のコード |
未 | 未 |
|
2021.10.01 | ||||||
1刷 | 114 図3.1 |
2刷 | 済 |
|
2021.07.21 | ||||||
1刷 | 117 (コード除く)本文上から7行目 |
2刷 | 済 |
|
2021.08.20 | ||||||
1刷 | 119 メモのコード |
2刷 | 済 |
|
2021.07.28 | ||||||
1刷 | 121 (リスト除く)下から3行目 |
2刷 | 済 |
|
2021.07.28 | ||||||
1刷 | 130 表3.1のハンドラー名 |
2刷 | 済 |
|
2021.07.28 | ||||||
1刷 | 134 図3.5 |
2刷 | 済 |
|
2021.07.21 | ||||||
1刷 | 135 (図除く)本文上から4行目 |
2刷 | 済 |
|
2021.08.20 | ||||||
1刷 | 171 上から5行目のコード |
2刷 | 済 |
|
2021.08.20 | ||||||
1刷 | 222 図7.3 |
2刷 | 済 |
|
2021.08.20 | ||||||
1刷 | 284,290 P.284:下から3行目、P.290:インデックス |
2刷 | 済 |
|
2021.07.20 | ||||||
1刷 | 285, 290 P285:上から3つ目、P.290:インデックス |
2刷 | 済 |
|
2021.07.21 |
やご さん
2022-04-08
Python によるウェブアプリケーションフレームワーク・Django の解説本です。Ver. 3.2 対応です。Django の解説本は以前、「Djangoのツボとコツがゼッタイにわかる本」を読みました。あちらがウェブアプリケーションを作った経験に乏しい、あるいはまったくないといった初心者を想定した内容であったのに対し、こちらはある程度経験のある中級者向けだと思われます。(続く)→ https://gok.0j0.jp/nissi/1258.htm
まるしょう さん
2021-07-26
1章を写経。テストから開発するスタイルでとても実践的。2章以降は拾い読みですが、Djangoに限らずWebアプリ構築に大切なTipsがあり勉強になる。本格的にDjangoを触る際に再読予定。