Python Django入門 (1)

  • 1112
    いいね
  • 2
    コメント
この記事は最終更新日から1年以上が経過しています。

django-logo-negative.png

はじめに

なぜ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を書いてみる。
  • Twitter Bootstrapを使う。
  • スマホバックエンドを作る。(JSONを返すAPIを作る)

学習対象者

  • JavaもしくはPHPは、やったことがあるんだけど、というPython以外の開発経験がある方を想定しています。
  • 一部、UNIX的な知識が必要になるかもしれません。その場合まわりの誰かに助けを求めて下さい。

サンプルコード

サンプルコードは、以下にあります。
講座の中ではコピペで構わないので、必要に応じて活用して下さい。

https://github.com/kakky/mybook19

使用マシン

本編はMacを前提にお話します。

  • Mac OS Xは、MacのGUIを被ったUNIXマシンです。
  • コマンドプロンプトではなく、ターミナルは本当にUNIXターミナルです。
  • 素の状態で、各種UNIXコマンドが使えます。
  • UNIXソースコードが、そのままコンパイルできるので、UNIXのツールがそのまま動き、Web開発の親和性が高い。
  • アメリカ/日本のベンチャーも、勉強会に出ても、技術系ブログを検索しても、Mac比率はかなり上がってきている。

会社やご家庭の財務最高責任者と相談して、Macを導入しましょう。

とは言え、Windowsを使っている方も多いと思うので、環境構築の部分はWindows、Macのそれぞれを説明いたします。

それでは、

のどちらかに進んで下さい。

【更新履歴】
* Django 1.7 -> Django 1.9
* eclipse -> PyCharm
で書き直しました。
微妙に変わっているので、学習途中の方は、すみません。