動かして学ぶ!Python Django開発入門(大高 隆)|翔泳社の本
  1. ホーム >
  2. 書籍 >
  3. 動かして学ぶ!Python Django開発入門

動かして学ぶ!Python Django開発入門


形式:
書籍
発売日:
ISBN:
9784798162508
定価:
3,740(本体3,400円+税10%)
仕様:
A5・408ページ
カテゴリ:
プログラミング・開発
キーワード:
#プログラミング,#開発環境,#開発手法,#Web・アプリ開発
シリーズ:
NEXT ONE
本書籍には新版があります
動かして学ぶ!Python Django開発入門 第2版

フルスタックエンジニア必携!
DjangoでWebアプリを開発しよう!

【本書の概要】
本書は、大人気フレームワーク「Django」によるWebアプリ開発手法を学べる書籍です。
具体的には、DjangoによるWebアプリの設計・作成の基本、動的機能の作成(フォーム作成)の基本、
認証処理の基本、データベースとの連携の基本(日記機能)、クラウドとの連携の基本(デプロイも含む)、
セキュリティの基本など一通り学ぶことができます。 フルスタックエンジニア必携の1冊です。

【対象読者】
フルスタックエンジニア

【Djangoの対応バージョン】
Django2.2。
Django2.2はLTS(Long Term Support)という長期間サポート対象のバージョンです。
2022年4月までサポートが予定されており、安心して学習できます。

【Djangoとは(本書より抜粋)】
DjangoはPython用のフルスタックWebアプリフレームワークです。
多くのWebアプリにおいて必要となるメール送信やセキュリティなど、
多くの機能が標準で備わっています。

開発用の機能も充実しています。開発サーバーはDjangoに同梱されているため、
ローカルマシンで開発中のWebアプリをすぐに起動できます。

さらに、データベースのテーブル定義を記述しておけば自分でデータベースを操作するSQLを書くことなく、
コマンドを打つだけでデータベースに反映することもできます。

運用を支援する管理サイトも最初から備わっています。この管理サイトを使えば、
Web上からデータベースのデータを書き換えたり、
ユーザーの管理などを素早く行えます。

【著者】
大高隆(おおたか・りゅう)
京都大学大学院情報学研究科修了後に日本アイ・ビー・エム株式会社に入社。
同社にて10年間エンジニアとして従事し退社。
現在フリーのソフトウェアエンジニア兼投資家。
パッケージソフトやWebアプリなどの開発作業に日夜取り組んでいる。

フルスタックエンジニア必携! DjangoでWebアプリを開発しよう!

本書の内容

本書の内容
図解でわかる

図解でわかる

文章だけでは理解しにくい事柄は図で解説します。具体的にイメージできるので、頭にスッと入ってきます。

コードの解説つき

コードの解説つき

「なぜそのようにコーディングするのか」がわかるよう、コードに解説を入れています。内容を理解することで、より実践的な力が身につきます。

迷わずに操作できる

迷わずに操作できる

操作の手順を画像で丁寧に解説。番号順に操作すれば、迷わずにゴールにたどり着けます。

Chapter 1 Webアプリを開発する前に
 01 設計作業は簡素にする
 02 既存ライブラリを積極的に活用する
 03 できる限り機械化する
 04 モチベーションを維持する
 05 まとめ

Chapter 2 Webアプリを開発するには
 01 Webアプリとは
 02 Webアプリの処理の流れ
 03 Webアプリの構築手順
 04 Webアプリの構築手段
 05 まとめ

Chapter 3 Djangoの概説
 01 Djangoとは
 02 Djangoの全体像
 03 Djangoプロジェクトの構造
 04 ルーティング
 05 ビュー
 06 フォーム
 07 モデル
 08 テンプレート
 09 ユーティリティコマンド
 10 まとめ

Chapter 4 Webアプリ開発前の準備
 01 手書きスケッチでWebアプリをデザインする
 02 Pythonをインストールする
 03 Python仮想環境を作成する
 04 Djangoをインストールする
 05 PyCharmをインストールする
 06 PostgreSQLをインストールし、データベース環境を構築する
 07 バージョン管理システムを導入する
 08 まとめ

Chapter 5 ページのDjangoアプリケーションを作成する
 01 サンプルアプリの開発環境構成
 02 Djangoプロジェクトを作成する
 03 Djangoアプリケーションを作成する
 04 PyCharm上のPython設定を変更する
 05 言語とタイムゾーンを日本仕様に変更する
 06 Djangoのデータベース設定をPostgreSQLに変更する
 07 ロギングを設定する
 08 ルーティングを設定する
 09 ビューを作成する
 10 テンプレートを作成する
 11 開発サーバーを動かしてトップページを表示する
 12 まとめ

Chapter 6 バージョン管理システムを構築する
 01 リモートリポジトリを作成する
 02 ローカルリポジトリを作成する
 03 バージョン管理対象外ファイルを登録する
 04 ローカルリポジトリにコミットする
 05 Sourcetreeにリモートリポジトリを登録する
 06 リモートリポジトリにプッシュする
 07 まとめ

Chapter 7 トップページを作り込む
 01 Bootstrapテンプレートをダウンロードする
 02 静的ファイルが配置されている場所を設定する
 03 各ページで共通利用するベーステンプレートを作る
 04 トップページを作り変える
 05 トップページの表示を確認する
 06 まとめ

Chapter 8 問い合わせページのフォーム画面を作る
 01 ルーティングを追加する
 02 ビューを追加する
 03 フォームのフィールドを定義する
 04 テンプレートを編集する
 05 独自スタイルを追加する
 06 問い合わせページの表示を確認する
 07 まとめ

Chapter 9 フォーム機能を作り上げる──メール送信
 01 ビューにフォーム動作時の処理を記述する
 02 メール送信処理を記述する
 03 プロジェクト設定ファイルを分割する
 04 メール処理で使うバックエンドを定義する
 05 開発サーバー起動時のPyCharmの設定を変更する
 06 メール送信を確認する
 07 画面にメッセージが表示されるようにする
 08 まとめ

Chapter 10 Djangoに認証機能を追加する
 01 認証用アプリケーションを作成する
 02 カスタムユーザーモデルを定義する
 03 カスタムユーザーモデルを管理サイトに登録する
 04 マイグレーションを行う
 05 django-allauthをインストールする
 06 プロジェクト設定ファイルを編集する
 07 ルーティングを追加する
 08 django-allauthのテンプレートを改変する
 09 django-allauthのメール内容を改変する
 10 認証ページへのリンクを貼る
 11 django-allauth用のマイグレーションを行う
 12 まとめ

Chapter 11 会員用機能を作る──データベースとの連携
 01 メディアファイルを扱えるようにする
 02 日記モデルを定義する
 03 日記モデルを管理サイトに登録する
 04 日記一覧表示機能を作る
 05 日記一覧ページへの遷移を記述する
 06 マイグレーションを行う
 07 管理サイトから日記データを登録する
 08 日記一覧ページにページネーションを付ける
 09 日記詳細表示機能を作る
 10 日記作成機能を作る
 11 日記編集機能を作る
 12 日記削除機能を作る
 13 一般的方法とSeleniumを使ったテストを行う
 14 ステータスコード403/404/500用ページを作る
 15 データベースをバックアップするバッチを作る
 16 まとめ

Chapter 12 Djangoとクラウドを連携して本番運用を行う
 01 サンプルアプリの本番運用環境構成
 02 AWSのアカウントを取得する
 03 EC2インスタンスを作成する
 04 Elastic IPを取得しインスタンスへ関連付ける
 05 EC2インスタンスにSSH接続する
 06 Amazon Linux 2の初期設定を行う
 07 Python 3をインストールする
 08 pip管理モジュールをインストールする
 09 PostgreSQLをインストールして初期設定する
 10 本番運用環境用Djangoプロジェクト設定ファイルを作成する
 11 本番運用環境にDjangoソースコードを配置する
 12 ログ配置ディレクトリを作成する
 13 Amazon SESを利用可能にする
 14 環境変数を設定する
 15 静的ファイルを配信ディレクトリに配置する
 16 マイグレーションを行う
 17 Nginxのインストールと設定を行う
 18 NginxとGunicornを起動する
 19 バッチの定期実行を設定する
 20 まとめ

Chapter 13 独自ドメイン化とセキュリティ対策
 01 はじめに
 02 ドメインプロバイダーでDNS設定を追加する
 03 Djangoの「ALLOWED_HOSTS」設定を変更する
 04 HTTPS化を行う
 05 Django管理サイトのURLを変更する
 06 Djangoのセキュリティチェックを行う
 07 まとめ

付属データはこちら

会員特典はこちら

お問い合わせ

内容についてのお問い合わせは、正誤表、追加情報をご確認後に、お送りいただくようお願いいたします。

正誤表、追加情報に掲載されていない書籍内容へのお問い合わせや
その他書籍に関するお問い合わせは、書籍のお問い合わせフォームからお送りください。

利用許諾に関するお問い合わせ

本書の書影(表紙画像)をご利用になりたい場合は書影許諾申請フォームから申請をお願いいたします。
書影(表紙画像)以外のご利用については、こちらからお問い合わせください。

  • P157、P245に関する追加情報(2021年5月27日)

    ・P.157「ダウンロードしたファイルをDjangoプロジェクトにコピーする」の追加情報

    Start BootstrapのCSSは「styles.css」に集約する構成に変わりました。そのため「vendor」ディレクトリは不要になり、下記のとおり「css/styles.css」をコピーして本書にあわせてファイル名を変更してください。

    private_diary
    ├── diary
    ├── manage.py
    ├── private_diary
    └── static
    ├── css
    │ └── one-page-wonder.min.css <=「css/styles.css」をコピーしてファイル名を変更
    └── img <= 本書のとおり「img」ディレクトリをそのままコピー


    ・P.245「テンプレートの作成」

    P.157と同様に下記のとおり「css/styles.css」をコピーして本書にあわせてファイル名を変更してください。

    private_diary
    ├── accounts
    ├── diary
    ├── manage.py
    ├── private_diary
    └── static
    ├── css
    │ ├── clean-blog.min.css <=「css/styles.css」をコピーしてファイル名を変更
    │ ├── mystyle.css
    │ └── one-page-wonder.min.css
    └── img
  • Chapter11 11節、12節 日記詳細/編集/削除ページにおいてURLからの直接アクセスでもログインユーザーが作成した日記にのみ、アクセス可能とする修正(2021年9月2日)

    日記詳細/編集/削除ページにおいてURLからの直接アクセスでもログインユーザーが作成した日記にのみ、アクセス可能とする修正(以下赤字部分を追加)は以下のとおりです。

    ・p263 リスト11.15 : diary/views.py
    (・・・略・・・)
    from django.contrib.auth.mixins import LoginRequiredMixin, UserPassesTestMixin
    (・・・略・・・)
    class OnlyYouMixin(UserPassesTestMixin):
    # 以下test_func関数がFalseを返すと、raise_exceptionがTrueの場合は403ページに遷移し、False(デフォルト)の場合はログインページに遷移
    raise_exception = True

    def test_func(self):
    # URLに埋め込まれた主キーから日記データを1件取得
    diary = Diary.objects.get(pk=self.kwargs['pk'])
    # ログインユーザーと日記データの作成ユーザーを比較し、異なればraise_exceptionの設定に従う
    return self.request.user == diary.user
    (・・・略・・・)
    class DiaryDetailView(LoginRequiredMixin, OnlyYouMixin, generic.DetailView):
    (・・・略・・・)

    ・p275 リスト11.25 : diary/views.py
    class DiaryUpdateView(LoginRequiredMixin, OnlyYouMixin, generic.UpdateView):
    (・・・略・・・)

    ・p279 リスト11.29 : diary/views.py
    class DiaryDeleteView(LoginRequiredMixin, OnlyYouMixin, generic.DeleteView):
    (・・・略・・・)

    <解説>
    ログインユーザーとアクセスしようとしている日記データの作成ユーザーを比較し、異なればアクセスできない制御を含めたクラス(UserPassesTestMixinを継承したOnlyYouMixin)を作成しています。このクラスをDiaryDetailViewとDiaryUpdateViewとDiaryDeleteViewでそれぞれ継承することで詳細/編集/削除画面へのアクセス制御が可能となります。なおUserPassesTestMixinのDjango公式サイト ドキュメントは以下のリンク先になります。

    https://docs.djangoproject.com/ja/2.2/topics/auth/default/#django.contrib.auth.mixins.UserPassesTestMixin
  • p101 「データベースの作成」の追加情報

    パスワードを求められた時の対処法


    ※画像をクリックすると拡大表示されます

  • p184 「問い合わせページの表示を確認する」の追加情報

    mystyle.cssが反映されていない時の対処法


    ※画像をクリックすると拡大表示されます

  • p341 「本番運用環境にDjangoソースコードを配置する」の追加情報

    差分を反映する方法


    ※画像をクリックすると拡大表示されます

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

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

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

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

書籍の種類:

書籍の刷数:

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

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

最終更新日:2021年06月08日
発生刷 ページ数 書籍改訂刷 電子書籍訂正 内容 登録日
1刷 065
コード内一番上
4刷
{% extends 'base.html' %} ----- ①
{% extends 'parent.html' %} ----- ①

※リフローEPUBの場合、リスト3.24が該当箇所になります。
2020.07.16
1刷 216
コード内一番下に追加(コメントを含めて4行)
3刷
(・・・略・・・) # ログアウトリンクのクリック一発でログアウトする設定 ACCOUNT_LOGOUT_ON_GET = True
(・・・略・・・) # ログアウトリンクのクリック一発でログアウトする設定 ACCOUNT_LOGOUT_ON_GET = True # django-allauthが送信するメールの件名に自動付与される接頭辞をブランクにする設定 ACCOUNT_EMAIL_SUBJECT_PREFIX = '' # デフォルトのメール送信元を設定 DEFAULT_FROM_EMAIL = 'admin@example.com'

※リフローEPUBの場合、リスト10.5の末尾が該当箇所になります。
2020.04.24
1刷 254
「日記データを作成する」の「2.」2~3行目
4刷
日記データに紐づける一般ユーザーをあらかじめ作成しておきます。
日記データに紐づける一般ユーザーをあらかじめ作成しておきます。サインアップの流れの中で配信されるメールはPyCharmのコンソールに出力されます。

※リフローEPUBの場合、Chapter 11の「07 管理サイトから日記データを登録する」の「日記データを作成する」の手順2が該当箇所になります。
2021.06.08

感想・レビュー

PenguinTrainer さん

2022-02-01

pythonでwebサービスを作るにあたって必要なことが盛り込まれた本。 webページの表示の仕組みやモデルベースの設計思想とその実践、HTML やcss (bootstrap)を活用したwebページの見た目の設計、バージョン管理ソフトの簡単な使い方、会員機能、テスト設計、クラウド上へのサービスの実装など盛りだくさんの内容であった。 日々情報が変化していくweb業界では本なんて読んでては情報が遅いという意見もあるが、こうした設計思想や使い方を機能にまで言及してくれる本は貴重かつ有用であると感じた。

yshr10ic さん

2020-04-05

Djangoの基本的なことを体系的に学べる本です! Djangoはすでにバージョン3がリリースされていますが、バージョン3でも問題なく動作します。

hayata_yamamoto さん

2020-01-11

ちゃんとDjangoを勉強したいと思って読んだ。個人的にはやったことのある内容もたくさんあったが、総じてしっかり丁寧に書かれていて好印象であった。強いて言えば、最後のセキュリティのところはもう少し丁寧なものでも良かったかもと思った。 本書は、Djangoの基本的な扱いを学ぶものであったが、付録も面白い内容が書かれており、合わせて読むとより面白いと感じる。技術書読んだはいいけど、使わないと忘れてしまうため、何か作らないとなと思わされました。