【本書の概要】
本書は、大人気フレームワーク「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アプリなどの開発作業に日夜取り組んでいる。
本書の内容
文章だけでは理解しにくい事柄は図で解説します。具体的にイメージできるので、頭にスッと入ってきます。
「なぜそのようにコーディングするのか」がわかるよう、コードに解説を入れています。内容を理解することで、より実践的な力が身につきます。
操作の手順を画像で丁寧に解説。番号順に操作すれば、迷わずにゴールにたどり着けます。
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 まとめ
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の基本的な扱いを学ぶものであったが、付録も面白い内容が書かれており、合わせて読むとより面白いと感じる。技術書読んだはいいけど、使わないと忘れてしまうため、何か作らないとなと思わされました。