Django 入門に役立つ英語のリソース集

この記事は [Django Advent Calendar 2018](/advent-calendar/2018/django) の 23 日目の記事です。

Django 入門に役立つ英語のリソース（書籍・オンラインチュートリアル等）についてまとめてみました。私が知っているリソースを手当たり次第挙げるのではなく、実際に中身を見てよいと思ったものだけになるべく絞っています。

「年末年始の休み中に Django に取り組んでみたい」「なるべく遠回りせずに効率よく Django を習得したい」という方のご参考になればと思います。

## 前提

以下いくつか前提についてです。

### 前提 1: 想定読者はウェブサイト構築の経験者

この記事の想定読者はウェブサイト構築の経験のある方です。つまり、ウェブやウェブサーバの基本的な仕組みは理解していて、 HTML ・ CSS ・ JavaScript ・ Python についてある程度スムーズに読み書きができるレベルを想定しています。

Django 入門のその前の学習方法に興味がある方には、 Django Advent Calendar 2018 1 日目の akiyoko さんの記事等がわかりやすくて参考になると思います。

- [初学者・初級者向け Django の学習ロードマップ - akiyoko blog](https://akiyoko.hatenablog.jp/entry/2018/12/01/133427)

### 前提 2: 「業務で快適に使えるレベルまで」が入門

「○○入門」と一口に言ってもさまざまなレベルがありますが、この記事では業務でひとまず快適に使えるレベルまでを「入門」と考えています。業務で快適に使えるようになるには、 Django の基本的なコンセプトや主な構成要素、基本的な使い方についてある程度理解する必要があるかと思いますが、今回はそのあたりもカバーするリソースをあげています。

## Django のバージョンについてのメモ

本記事作成時の Django 最新バージョンは 2.1.x です。 Python の最新バージョンは 3.7 です。

Django 2.x （ 2017 年 12 月リリース）が出てから 1 年ほどしか経っていないこともあり、最新の 2.x に対応したリソースはあまり多くはありません。ただ、 Django はメジャーバージョンが上がっても根幹の部分は大きくは変わっていないので、 Django 1.x のリソースでも大部分はそのまま利用できると思います。

...

では本題に入ります。まずは Django 公式サイトから。

## 公式サイト

- [The Web framework for perfectionists with deadlines | Django](https://www.djangoproject.com/)

Django の公式サイトはとても充実していて、さまざまなコンテンツがあります。入門時に押さえておくべき主要なエリア・ページを以下にあげます。

### Django とは何ぞやの説明

- [Django overview | Django](https://www.djangoproject.com/start/overview/)

### Django Software Foundation とは何ぞやの説明

- [About the Django Software Foundation | Django](https://www.djangoproject.com/foundation/)

### Django のダウンロード

- [Download Django | Django](https://www.djangoproject.com/download/)

### ドキュメント

- [Django documentation | Django documentation | Django](https://docs.djangoproject.com/en/2.1/)

Django がどういうものかすでに知っている人はドキュメントのエリアをメインで見ることになるでしょう。

ドキュメントの主なエリアは次の 5 つです。

#### 1. チュートリアル

- [Getting started | Django documentation | Django](https://docs.djangoproject.com/en/2.1/intro/)

サンプルアプリの構築を通して Django の全体をおおづかみに把握できるチュートリアルです。パート 1 〜 7 の 7 ステップで構成されています。 Django を初めて触る方はおそらく最初にこれをやってみて感触をつかむのがよいかと思います。

このチュートリアルはあくまでも「 Django をおおづかみに理解する」ためのものなので、「 Django でできること」「 Django の主要コンポーネント」「 Django の使い方」のイメージがつかめたらそれで OK です。「 Django 部体験入部」的な位置づけのコンテンツです。

#### 2. トピック集

- [Using Django | Django documentation | Django](https://docs.djangoproject.com/en/2.1/topics/)

Django の主要なコンセプトと基本的な使い方について説明したコンテンツです。チュートリアルを終えた後に目を通すとよいでしょう。すべて読もうと思うと結構ボリュームがあります。

Django の重要な部分だけを 80:20 の戦略にもとづいて学べる、というような位置づけのコンテンツです。ただ、業務で Django ベースの開発に関わるなら最低限これは読み通しておくべきかと思います。

#### 3. How-to ガイド

- [“How-to” guides | Django documentation | Django](https://docs.djangoproject.com/en/2.1/howto/)

「やりたいこと」別に情報をまとめた「逆引きリファレンス」的なコンテンツです。これも業務で Django を使うのであればひととおり押さえておくのがよいかと思います。

#### 4. FAQ

- [Django FAQ | Django documentation | Django](https://docs.djangoproject.com/en/2.1/faq/)

FAQ 集です。私は一部しか読んだことがありませんが、 Django を本格的に使いたいと思う方なら興味があるはずのトピックがたくさんあるので、まず一覧を見てみて、興味があるものがあれば拾い読みするとよいでしょう。

#### 5. API リファレンス

- [API Reference | Django documentation | Django](https://docs.djangoproject.com/en/2.1/ref/)

Django コアのクラスや関数のリファレンスです。

重要なことがここにさらっと書かれていたりするので、チュートリアルやトピック集に出てきたクラスや関数についてはこちらの API リファレンスの説明も押さえておくとよいかと思います。

#### その他

以下、 Django 入門時に役立つ代表的なその他のページです。

Django の設計哲学:

- [Design philosophies | Django documentation | Django](https://docs.djangoproject.com/en/2.1/misc/design-philosophies/)

用語集:

- [Glossary | Django documentation | Django](https://docs.djangoproject.com/en/2.1/glossary/)

リリースノート:

- [Release notes | Django documentation | Django](https://docs.djangoproject.com/en/2.1/releases/)

ドキュメント全体のコンテンツ一覧ページもあるので、チュートリアルとトピック集を読んだら、このページを眺めて興味のあるものを拾い読みするとよいでしょう。

- [Django documentation contents | Django documentation | Django](https://docs.djangoproject.com/en/2.1/contents/)

### お知らせ

- [News & Events | Django](https://www.djangoproject.com/weblog/)

Django Software Foundation からのお知らせブログです。

### コミュニティリンク集

- [Django Community | Django](https://www.djangoproject.com/community/)

Django コミュニティのさまざまなりソースへのリンク集です。

### バグトラッカー

- [Django](https://code.djangoproject.com/)

入門時に使うことはあまり無い気がしますが、 Django 本体のバグトラッカーです。

## 書籍

Django 入門時に有益な書籍です。それぞれ 3 つ星で評価をつけています。

### Django 2 by Example

- ★★★
- 2018 年

非常に実践的なサンプルサイトの構築を通して Django を学べる書籍です。過不足の無い洗練された説明なので、とても快適・スムーズに Django を学ぶことができると思います。サンプルサイトは「ブログ」「 SNS 」「 EC 」等です。

かんたんな入門コンテンツをひととおり終えた後に利用すると Django への理解が深まると思います。

- [Django 2 by example](https://www.packtpub.com/application-development/django-2-example)

### Lightweight Django

- ★★★
- 2014 年

副題は「 Using REST, WebSockets & Backbone 」です。

「 Lightweight 」の名のとおり Django を小さく使う方法を紹介した独特な書籍です。他ではあまり見られない「 1 ファイルの最小構成で Django を使う方法」や「 Django を static site generator として使う方法」を学ぶことができます。 Django には ORM やテンプレートエンジンがデフォルトで付いていますが、それらはオプションである（使いたければ使えばいいし、使いたくなければ使わなくていい）ということがこの本を読めばよくわかります。紙の書籍で 77 ページと薄いですが Django の本質を理解させてくれる良書です。

- [Lightweight Django - O'Reilly Media](http://shop.oreilly.com/product/0636920032502.do)

### Two Scoops of Django 1.11

- ★★★
- 2017 年

副題は「 Best Practices for the Django Web Framework 」です。

Django の超実践的レシピ集です。お値段はなかなかですが、 Django の実践的ノウハウに興味のある方が読めば必ず価格以上の価値があると思う一冊です。

Django 1.5 、 1.6 、 1.8 、 1.11 と Django のバージョンアップにあわせて本書も更新されています。本記事作成時点の Django の最新バージョンは 2.1 ですが、メジャーバージョンが上がっても本質の部分はそう変わらないので 1.11 を読んでも大きな問題は無いかと思います（ただし 1.x と 2.x の違いをおおまかにでも把握しておく必要があります）。

Django ベースの開発をある程度行わないと本書の内容が理解しづらいので、サンプルプロジェクトでもよいのである程度 Django を触った後に読むことをおすすめします。

- [Two Scoops Press: Making Python and Django as fun as ice cream](https://www.twoscoopspress.com/)

### Test-Driven Development with Python, 2nd Edition

- ★★★
- 2017 年

副題は「 Obey the Testing Goat: Using Django, Selenium, and JavaScript 」です。

副題まで見ればわかりますが、メインのタイトルに「 Django 」と入っていないので、ざーっと検索していると見逃してしまう可能性の高い Django 本です。 Django を使って TDD （テスト駆動開発）を行う方法が丁寧に解説されています。とにかく内容もりだくさんで、紙の書籍だと 600 ページ以上あります。 Django ✕ TDD ならこの本を一冊読めば他には何も読まなくてよさそうな感じがします。

「 Two Scoops 」と同じく、 amazon.com 等で非常に高評価な書籍です。

- [Obey the Testing Goat!](https://www.obeythetestinggoat.com/)

### Web Development with Django Cookbook - Second Edition

- ★★
- 2016 年

データベース、ビュー、フォーム、テンプレート、テスト等の Django の主要な構成要素に分けて多くの小ネタを紹介してくれる書籍です。 Django 1.8 と少し古いですが、 Django 入門に使う上では大きな問題はないと思います（ただし、ハマらないためには、 Django 1.x と 2.x で何が違うのかをある程度知って置く必要があります）。

- [Web Development with Django Cookbook - Second Edition](https://www.packtpub.com/web-development/web-development-django-cookbook-second-edition)

### Mastering Django: Core

上にあげた書籍はどれもおすすめですが、これだけは **やめておいた方がよい書籍** としてあげています。 3 つ星で評価するならマイナス 3 です。

というのは、 Django の公式ドキュメントのまるまるコピーが（引用とはわからない形で）大量に含まれており、コピーではない箇所の説明もアレなので、どう考えても公式ドキュメント以上の価値はありません。著者はウェブ上にも Django 公式ドキュメントのコピーを引用とは一見わからない形で載せているので、そちらにも注意が必要です。

著者は他にも Django 本をいくつか出していてそのどれもが amazon.com で高評価を得ていますが、星 5 つのものはおそらく 100% さくらと見てよいでしょう :-(

### その他の書籍

私は読んでいない Django 本の中に、 amazon.com 等で評価の高いものがいくつかあります。内容について語ることはできないので、名前だけあげておきます。

- [Django for Beginners](https://djangoforbeginners.com/)
	- 2018 年
- [The Definitive Guide to Django: Web Development Done Right](https://www.apress.com/jp/book/9781430219361)
	- 2009 年（もう 10 年前の書籍なので今改めて読む価値は無いかもしれません）

書籍全般の注意点として、 Packt Publishing の書籍等はよく下調べして購入する必要があります。良書ももちろんありますが、中には「これ、売り出す前に絶対読み返してないでしょ！」レベルの書籍もたくさんあります。

## オンラインチュートリアル

Django 入門時に有益なオンラインのチュートリアルです。

### Django 公式

- [Writing your first Django app, part 1 | Django documentation | Django](https://docs.djangoproject.com/en/2.1/intro/tutorial01/)

上にもあげましたが、公式ドキュメントの一部です。

投票機能を持ったサンプルサイトを作る過程で、「プロジェクトの作成」「 app の作成」「ビューの作成」「ルーティング設定」「データベース設定」「モデル作成」「マイグレーション」「管理画面」「フォーム作成」「テンプレート作成」等の主要な機能をひととおり概観することができます。

### Django Girls Tutorial

- [Introduction · Django Girls Tutorial](https://tutorial.djangogirls.org/en/)

私自身は使ったことはありませんが、言及されているのをよく見かけます。ざっと見たところ内容もシンプルでよさそうです。タイトルに「 Girls 」とありますが、特にこの資料が girls 限定ということは無いので誰が使ってもよいと思います。日本語訳もされているようです。

### Python and Django tutorial in Visual Studio Code

- [Python and Django tutorial in Visual Studio Code](https://code.visualstudio.com/docs/python/tutorial-django)

ちょうど Visual Studio Code を使っていて Django ベースの開発をしたい、という方にはよいのではないでしょうか。

## コード

### GitHub

- [GitHub - django/django: The Web framework for perfectionists with deadlines.](https://github.com/django/django)

Django 本体のソースコードは GitHub で確認することができます。ちょこっと確認するときには便利ですが、あちこちジャンプしながら処理をおっかける必要がある場合にはリポジトリを clone 等して見るのがよいかと思います。

## Django 関連パッケージ

### Django Packages

- [Django Packages : Reusable apps, sites and tools directory](https://djangopackages.org/)

Django 関連の Python パッケージの情報が集められたサイトです。パッケージの検索と比較ができる機能を提供しています。

例） Django ベースの CMS の比較

- [Django Packages : CMS](https://djangopackages.org/grids/g/cms/)

例） 人気パッケージ一覧

- [Django Packages : Categories ›› Apps](https://djangopackages.org/categories/apps/)

pypi.org でも Django 関連パッケージを検索することができますが、 Django Packages の方が使い勝手がよいです。

## 動画

Django 関連動画は YouTube 等で検索すると無数に見つかります。あげていくとキリがなさそうなので、ちらっと見てよさそうなものを 2 つほどあげてみます。

### プレイリスト: Django Tutorials for Beginners

- [Django Tutorials for Beginners - YouTube](https://www.youtube.com/playlist?list=PL6gx4Cwl9DGBlmzzFcLgDhKTTfNLfX1IK)

### CS Dojo の Django 回

- [Making a Hello World App with Django | Web Development | Build a Startup #2 - YouTube](https://www.youtube.com/watch?v=h7rvyDK70FA)
- [Making a To-Do App with Django | Web Development Tutorial | Build a Startup #3 - YouTube](https://www.youtube.com/watch?v=ovql0Ui3n_I)

## ブログ

ブログもあげていくとキリがないほどありますが、入門に役立つのを 1 つだけあげてみます。

### Simple is Better than Complex

- [Simple is Better Than Complex](https://simpleisbetterthancomplex.com/)

Django において「○○のやり方」を調べていると結構な確率でこのブログに行き着きます。丁寧に書かれたわかりやすい記事が多いので、覚えておいて損は無いと思います。

あとは Django 公式サイトで配信されているコミュニティのフィードを読んで気に入ったものを追加すればよいでしょう。

- [Feed: Django community aggregator: Community blog posts](https://www.djangoproject.com/rss/community/blogs/)

...

というわけで、 Django 入門に役立つ英語のリソース集、でした。 Django に興味のある方の参考になれば幸いです :)