拙著「動かして学ぶ! Python Django開発入門」が販売開始

本日2019年12月13日に拙著「動かして学ぶ! Python Django開発入門」が発売となりました。多少大きな本屋さんであればコンピュータ関連のPythonの棚に置いてあるかもしれません。

本書は翔泳社さんから出版させていただきました。ありがたいことに当初の構成を大方採用いただき出版に至りました。初めての出版なので他の出版社と比較はできませんが、WindowsとmacOS両方で書籍の手順をなぞって細かくプログラムの動作検証をしたり、校正も何回もやっていただき、かなりしっかりとチェックする体制が整えられていたなという印象です。(今回執筆してみて日本語について大いに勉強になりました。特に何でもかんでも漢字にしておけばOKという考えは間違いだったのが鮮烈です。「ください/下さい」「いたします/致します」「こと/事」の違いなどなどです。TVのテロップなんかは短くしたいからなのかよく漢字を使っていて正確ではないようです。)

内容はWebアプリの基本から説明をはじめ、Djangoの概説、そしてサンプルWebアプリをインターネットに公開するまでの工程を順に解説しています(ただし大人数に公開することまでは想定しておりません)。サンプルアプリを作る中でWebアプリに関する周辺知識やDjangoの知識について補足しています。さらに付録(会員特典)として、本書を読むにあたり最低限抑えておくべきPython/Bootstrap/Gitの基礎知識およびReact.js(Webアプリ)/React Native(モバイルアプリ)とDjangoを連携させる簡単なサンプルアプリを作る手順も提供しています。

対象読者は、HTMLやCSSを使って簡単なWebページは作れるがDjangoは未経験という方を想定しています。入門書という位置付けにしたのとページ数の関係でDjangoのアーキテクチャについてはあまり深入りはせず、Djangoの利用方法に主眼を置いて書いてあります。ただしコードの意味についてはできる限り注釈を入れているので、意味も分からずコーディングしているということはないようにしています。

目次

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 まとめ

付録

Appendix A Pythonの基礎知識
01 Pythonの実行方法
02 Pythonプログラムの基本構造
03 基本データ型
04 コレクション
05 条件分岐
06 ループ
07 関数
08 クラス
09 モジュールとパッケージ

Appendix B Bootstrapの基礎知識
01 Bootstrapの導入方法
02 グリッドシステム
03 レスポンシブデザイン
04 フォーム

Appendix C Gitの基礎知識
01 バージョン管理システムの種類
02 Gitの構成要素
03 Git の移行系操作コマンド
04 ブランチ

Appendix D DjangoとモダンJavaScriptとの連携
01 モダンJavaScriptとは
02 DjangoとモダンJavaScriptの連携構成
03 バックエンドの開発: Django Web API
04 フロントエンドの開発環境構築
05 フロントエンドの開発: React.js
06 サンプルアプリの動作確認

Appendix E Djangoとモバイル アプリとの連携
01 モバイルアプリを開発するには
02 Djangoとモバイルアプリの連携構成
03 モバイルアプリの開発環境構築
04 モバイルアプリの開発: React Native
05 サンプルアプリの動作確認

sponsor