はじめに
なぜPythonを選ぶか
かなり独断と偏見が入っていますが、
- シンプルな言語セット
- 某言語のように、呪文のように短く書けることが命ではない。
- それでいて、書くコード量は少なく、すっきりしている。
- 某言語のように、記号を多用しない。
- コードを書いている間Shiftキーを押しっぱなしにならない。
- 某言語のように、呪文のように短く書けることが命ではない。
- 学習コストが低い。
- 言語セットとしての文法は、わりと平易で、直感で理解できる。
- 難しい書き方は、後から覚えればよい。
- 文法書を読むのは、後からでいいでしょう。まずこの講座をやってみましょう。
- Djangoフレームワークや、各種Pythonパッケージのソースを読んでも、
- 言語仕様を駆使した難しい書き回しは少ない。
- メンテナーでなくても意外と読める。
なぜDjangoを選ぶか
-
Pythonで作られたフルスタック・フレームワークであるということ。
- 必要なものはすべて揃っている。
- テンプレートはあれを持ってきて、DBアクセスはあれを持ってきて、ということがない。
- もちろん、拡張するモジュールはあるが、基本はDjangoだけで完結する。
-
ORM - Object Relational Mapping オブジェクト関係マッピング が優れている。
- DBアクセスのためにSQLを1行も書かないこともできる。
-
管理サイトが素晴らしい。
- Djangoにはscaffoldはないが、管理サイトが秀逸(詳しくは講座の中で解説します)
- 管理サイトだけで、データ投入、データ検証ができる。
- 特にプロトタイプを作る局面で、生産コストが下がる。
-
学習コストが低い
- 生の HTML、Javascript、CSSが基本だったりするが、最初に選ぶWebフレームワークとしてはシンプル。
この講座について
この講座は、GeekLab.NAGANO 主催の「Django入門」講座用教材として書き起こしました。
講座の概略
「モバイル・ファースト」の時代ですが、スマートフォン・アプリケーションのバックエンド開発をDjangoで作れる人材を育てたいと願っています。
講座の流れは、以下のようになります。
- Python、Djangoの開発環境構築
- Djangoで親子関係のあるDBモデルを定義する。
- DBモデルを管理サイトで保守する。
- DjangoのCRUDを書いてみる。
- Bootstrapを使う。
- スマホバックエンドを作る。(JSONを返すAPIを作る)
学習対象者
- JavaもしくはPHPは、やったことがあるんだけど、というPython以外の開発経験がある方を想定しています。
- 一部、UNIX的な知識が必要になるかもしれません。その場合まわりの誰かに助けを求めて下さい。
サンプルコード
サンプルコードは、以下にあります。
講座の中ではコピペで構わないので、必要に応じて活用して下さい。
https://github.com/kakky/mybook30
使用マシン
本編はMacを前提にお話します。
- Mac OS Xは、MacのGUIを被ったUNIXマシンです。
- コマンドプロンプトではなく、ターミナルは本当にUNIXターミナルです。
- 素の状態で、各種UNIXコマンドが使えます。
- UNIXソースコードが、そのままコンパイルできるので、UNIXのツールがそのまま動き、Web開発の親和性が高い。
Web系の開発では、Macをお薦めします。
とは言え、Windowsを使っている方も多いと思うので、環境構築の部分はWindows、Macのそれぞれを説明いたします。
それでは、
のどちらかに進んで下さい。
【更新履歴 3.0】
- Django 3.0 + JQuery 3.x + Bootstrap4 で書き直しました。
- PyCharm の UI が結構変わっているので、スクショを貼り直しました。
- IDE として eclipse の説明は削除しました。
- まだ Python などのインストール時のスクショが古いままですが、お許し下さい。
【更新履歴 2.0】
- Django 2.0 + JQuery 3.x + Bootstrap4 で書き直しました。
- まだ Python や PyCharm のインストール時のスクショが古いままですが、お許し下さい。
【更新履歴 1.9】
- Django 1.7 -> Django 1.9
- eclipse -> PyCharm
で書き直しました。