実践Django Pythonによる本格Webアプリケーション開発(芝田 将)|翔泳社の本
  1. ホーム >
  2. 書籍 >
  3. 実践Django Pythonによる本格Webアプリケーション開発

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


形式:
書籍
発売日:
ISBN:
9784798153957
定価:
3,850(本体3,500円+税10%)
仕様:
B5変・312ページ
分類:
プログラミング・開発

本書籍の他の形式を確認する

  • このエントリーをはてなブックマークに追加

現場で役立つ実践的なノウハウを徹底解説

【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 本書で紹介したサードパーティーライブラリ一覧

付属データはこちら

会員特典はこちら

書籍への問い合わせ

正誤表、追加情報をご確認の上、こちらよりお問い合わせください

書影の利用許諾について

本書籍に関する利用許諾申請はこちらになります

  • 書籍のサポートページについて

    書籍、電子書籍のサポートページは以下になります。

    ・書籍サポートページ
    URL:https://www.shoeisha.co.jp/book/detail/9784798153957

    ・電子書籍サポートページ
    URL:https://www.shoeisha.co.jp/book/detail/9784798153964

ご購入いただいた書籍の種類を選択してください。

書籍の刷数を選択してください。

刷数は奥付(書籍の最終ページ)に記載されています。

現在表示されている正誤表の対象書籍

書籍の種類:

書籍の刷数:

本書に誤りまたは不十分な記述がありました。下記のとおり訂正し、お詫び申し上げます。

対象の書籍は正誤表がありません。

最終更新日:2021年09月22日
発生刷 ページ数 書籍改訂刷 電子書籍訂正 内容 登録日
1刷 vi
上から11行目
クロスタイリクエストフォージェリ
クロスサイトリクエストフォージェリ
2021.07.20
1刷 vii
表1,2
・ライブラリなど django-bootstrap4 ・バージョン 3.0.0
・ライブラリなど django-bootstrap5 ・バージョン 1.0.0
2021.07.21
1刷 004
図1.3
・URLの部分 http://localhost:8000/sunippets/new ・コードの部分 class Snippet(moidels.Model):
・URLの部分 http://localhost:8000/snippets/new/ ・コードの部分 class Snippet(models.Model):
2021.07.20
1刷 004
図1.4
・URLの部分 http://localhost:8000/sunippets/1/ ・コードの部分
Class Snippet(models.Model):
    code = models.TextField("コード".blank=True)

    class Meta():
        db_table = "sunippets"
・URLの部分 http://localhost:8000/snippets/1/ ・コードの部分
class Snippet(models.Model):
    code = models.TextField("コード", blank=True)

    class Meta:
        db_table = "snippets"
2021.07.20
1刷 012
図1.9
methid: GET
method: GET
2021.07.21
1刷 025
図1.15
2021.09.22
1刷 035
リスト1.20、リスト1.21のキャプション
リスト1.20 テンプレートエンジンの分岐処理 リスト1.21 テンプレートエンジンのforループ
リスト1.20 テンプレートエンジンのforループ リスト1.21 テンプレートエンジンの分岐処理
2021.07.28
1刷 058
リスト1.43のキャプション
snippets/static/snippets/style.css
snippets/static/snippets/css/style.css
2021.08.04
1刷 066
リスト1.51
{% load bootstrap5 %}
{% load django_bootstrap5 %}
2021.08.04
1刷 075
モデルフィールドの一覧の部分
PostgreSQL:ArrayField、HStoreField、JSONField、IntegerRangeField、DateRange Field、...
PostgreSQL:ArrayField、HStoreField、IntegerRangeField、DateRange Field、...
2021.07.28
1刷 079
リスト(上から4~5行目)
def __str__(self):
    return f'{self.pk} {self.title}'
def __str__(self):
    return  f'{self.pk} {self.text}'
2021.08.04
1刷 086
下部コード内(下から5行目)
class SnippetQuerySet(models.Manager):
class SnippetQuerySet(models.QuerySet):
2021.08.20
1刷 092
メモ
またMySQLではjoin_buffer_sizeパラメーターより・・・
またMySQLではjoin_buffer_sizeパラメーターにより・・・
2021.07.28
1刷 114
図3.1
HttoRequest
HttpRequest
2021.07.21
1刷 117
(コード除く)本文上から7行目
例:b'{"message": "Hello World"')
例:b'{"message": "Hello World"}')
2021.08.20
1刷 119
メモのコード
from django.shortcuts import render, get_object_or_404
def snippet_detail(request, snippet_id):
    snippet = Snippet.objects.get(pk=snippet_id)
    return render(request, 'snippets/snippet_detail.html',
                  {'snippet': snippet})
from django.shortcuts import render, get_object_or_404

def snippet_detail(request, snippet_id):
    snippet = get_object_or_404(Snippet, pk=snippet_id)
    return render(request, 'snippets/snippet_detail.html',
                  {'snippet': snippet})
2021.07.28
1刷 121
(リスト除く)下から3行目
as_viewメソッド使用します。
as_viewメソッドを使用します。
2021.07.28
1刷 130
表3.1のハンドラー名
http400 http403 http404 http500
handler400 handler403 handler404 handler500
2021.07.28
1刷 134
図3.5
Messgae body
Message body
2021.07.21
1刷 135
(図除く)本文上から4行目
例:b'{"message": "Hello World"')
例:b'{"message": "Hello World"}')
2021.08.20
1刷 171
上から5行目のコード
{% extends"base.html" %}

{% block main %}
<form method="post">
    {% csrf_token %}
    {{ form.as_p }}
</form>
{% endblock %}
<!-- titleフィールドのラベルのテキストを変更 -->
<p>
    {{ form.title.errors }} <label for="{{ form.title.id_for_label }}">タイトル(必須)</label> {{ form.title }}
</p>
<p>
    {{ form.code.errors }} {{ form.code.label_tag }} {{ form.code }}
</p>
<p><!-- descriptionフィールドも同様に表示 --></p>
2021.08.20
1刷 222
図7.3
PermissionsMixim
PermissionsMixin
2021.08.20
1刷 284,290
P.284:下から3行目、P.290:インデックス
drm-spectacular
drf-spectacular
2021.07.20
1刷 285, 290
P285:上から3つ目、P.290:インデックス
・P285 django-bootstrap4 GitHub   https://github.com/zostera/django-bootstrap4 公式ドキュメント   https://django-bootstrap4.readthedocs.io/ ・P290 django-bootstrap4
・P285 django-bootstrap5 GitHub: https://github.com/zostera/django-bootstrap5 公式ドキュメント: https://django-bootstrap5.readthedocs.io/en/latest/ ・P290 django-bootstrap5
2021.07.21