##Django Girls Tutorial について
Djangoに入門して、まず当惑するのが初心者向け日本語情報の少なさです。
Djangoは一応公式のチュートリアルがあります。
これが非常に読みにくいです。専門用語が多く、LinuxやPython、他のフレームワークに習熟していてなんとか理解できるレベルで、初学者の心を折るには十分です。
それよりも、はじめの一歩として優秀なのが [Django Girls Tutorial]
(https://www.gitbook.com/book/djangogirlsjapan/workshop_tutorialjp/)です。
名前の通り、アメリカのPythonコミュニティで定期的に開いている女性を対象としたワークショップで、教科書として利用しているものを翻訳したものです。
明快な文章で、内容も丁寧に段階を踏んでいます。
なにしろ最初の項目が「インターネットの仕組み」です。そこからウェブサーバの仕組み、Pythonのインストール、テキストエディタのインストール、Pythonの基本知識の説明があってようやくDjangoの説明です。Djangoのひとつひとつのモジュールについてその目的を明確にし、とりあえず変更していろいろ動作を確認する構成なので個々の項目に対して理解が深まります。
内容を進めるとHerokuへのデプロイの実習まで及びます。
一般人にとってインターネットへのアプリを公開するのは非常にハードルが高いものという認識ですが、クラウド環境の整備でここまで簡単になっていることに気付く良いきっかけになりました。
非プログラマならいろいろ調べつつ読むので時間がかかりますが(私は丸3日かかりました)、項目の粒度が適切なので、今何がわからないのかが自覚しやすかったです。
Djangoのみならず、とりあえずWebフレームワークを触ってみたい人には最適の教材だと思いました。学校や新人研修でも活用できるでしょう。
##実際にやってみた後のメモ
学習を振り返ってみてメモを残します。
環境は Window 7-64bit/ Python3.6.3
Pythonをインストールしよう
WindowsのPythonのインストーラーは、Pythonのバージョンによって、デフォルトのディレクトリが異なるようです。
現行の3.6だとユーザー領域の深い位置に配置されます。
C:\Users\<username>\AppData\Local\Programs\Python\Python36
後々扱いにくくなるので、カスタムインストールを選び、Cドライブ直下に「Python」ディレクトリなどを作ってそこにインストールすると楽です。
Program Files内にインストールすることもできますが、グローバル環境への変更時(pip install 等)、ターミナルを管理者モードで実行しない限りエラーになるので不便です。
※一見不便ですが、仮想環境を意識して作業する習慣がつくのでメリットとも考えられます。
####コードエディタ
Atomを含めて3つのエディタが紹介されていますが「Visual Studio Code」がおすすめです。低スペックPCでも軽快で、Django Girls Tutorial の執筆時よりもさらにDjangoにフレンドリーになっています。
####Djangoのインストール
チュートリアルでは仮想環境のディレクトリをプロジェクト内に作成しています。
しかし学習中はプロジェクトを何度も削除、再作成するので、その度に仮想環境を構築するのは面倒です。プロジェクト外に作成すると学習がスムーズになります。
####デプロイ!
Herokuへのデプロイにあたってパッケージを4つ追加していますが、説明が無かったので調べた範囲でメモ
gunicorn
Python製のWSGIサーバ。WSGIとはWebサーバとアプリケーションサーバ(Django)の中間で橋渡しをするもの。herokuのWebサーバが何なのかは未調査
psycopg2
Postgres(データベース) への接続ドライバ
dj-database-url
データベースに接続するにはユーザー名やパスワードが必要です。
しかしそれを設定ファイルに直接書くと、無関係の人間に見られてしまうリスクがあります。その対策として秘密の情報は環境変数に登録し、設定ファイル内で環境変数を読み込んで使う方法が一般的になっています。
環境変数内の接続設定を読み込んでアプリケーションで使えるようにするのがこのモジュールの役割です。
Djangoアプリケーションをherokuの無料枠でデプロイすると、自動的に無料枠のPostgresデータベースが作成され、環境変数にその接続設定が登録されます。
チュートリアル内で特にデータベースの設定を行う必要が無いのはこの機能によるものです。
whitenoise
アプリケーションのソースファイルは通常Webサーバから直接公開される場所に配置しません。しかし画像ファイルなど静的ファイルは開発時にソースファイルと一緒に管理するのでデプロイにあたって分離作業をする必要があります。その作業を自動化してくれるのがwhitenoiseです。
##参考
- Django入門にはDjango Girls Tutorialがおすすめ
- https://qiita.com/takechanman/items/d711e175b32f833c5e9c