めるノート

へっぽこWebエンジニアが地団駄を踏んでいる日誌

Pythonの素人がDjangoアプリケーションをlocalhostで立ち上げるまで

これまで全くPythonは触ったことなかったのですが、機械学習ブームだったり、Ruby25のイベントでMatzさんがPythonの話をしてたりしたので、すこし興味がありました。
RubyPHPJavaScriptと同じスクリプト言語だし、ちょっと見てみたいな、と思ったところで、こんな本が出ていました。

www.instagram.com

スラスラ読める Pythonふりがなプログラミング

「ふりがなプログラミング」シリーズは話題になっていたので個人的に欲しいなと思っていたのですが、せっかくなら未履修の言語をやってみたいと思ったので、JavaScriptではなくPythonの方を買ってみました。

内容はプログラミング未経験者向けなので、変数や関数、リストやループなどの基本的なしくみが、Pythonの文法も含めて、しっかり解説されていました。
このあたり、自分は学生時代にJavaの入門書で独学したのですが、ここまでやさしくは説明されていなかったので、結構大変だった記憶があります。いい時代になったなあ。

Pythonの文法は、SlimやSass(not Scss)、CoffeeScriptなどのように基本閉じなくてよくて、インデントやスペースで制御されている感じなのが楽でいいなーと思いました。
あとは前述の通りスクリプト言語なので、普段RubyJavaScriptをやっている自分でも、ハードルに感じた内容は特になかったように思います。解説もやさしかったし。

Djangoを使ってみる

さて、本題に戻ります。Djangoですね。
今のところ自分は機械学習に対してハードルを感じているので、RailsやLaravelみたいなアプリケーションなら触れそうだと思ったのが、Djangoを触ってみようと思ったきっかけです。

ただ、Ruby on RailsやVue CLI、Nuxt.jsみたいな爆速initに慣れてしまった身には、Djangoの公式ドキュメントが少しハードル高めに感じたので(笑)、最終的にはDjango Girls Tutorialを参考に進めていくのが良かったです。

並行して、日本語では以下の記事を参考にさせていただきました。

qiita.com


pythonのインストール

自分は別のプロジェクトの関係で direnvpyenv を使っていました。 なので、まずは pyenv を使って3系のPythonをインストールしました。

$ pyenv install 3.6.1

次に、プロジェクト用のディレクトリを作成します。

$ mkdir django-tutorial
$ cd django-tutorial

direnv を使うために、以下の記述のある .envrc を作成します。

pyenv local 3.6.1

あとは、以下のコマンドを使えば、このプロジェクトの中だけでpython3.6.1を動かすことができるようになります。

$ direnv allow

Python仮想環境のためのvirtualenv導入

ここでは以下の記事を参考にさせていただきました。

qiita.com

上記の通りに進めていきます。

$ sudo easy_install virtualenv

# すでにプロジェクト用のディレクトリ内にいるため、カレントディレクトリで実行
$ virtualenv --no-site-packages .
$ source bin/activate

Djangoプロジェクトの作成

Django Girls Tutorialにしたがって、Djangoをインストールします。
Django自体は、もっと新しいバージョンが出ているようですね。

$ pip install django~=1.11.0

Djangoのプロジェクトを作成します。

$ django-admin.py startproject mysite .

migrateします。

$ cd mysite
$ python manage.py migrate

ここまで進んだら、以下のコマンドでローカルサーバーを立ち上げることができます。 http://127.0.0.1:8000/ から確認してみましょう。

$ python manage.py runserver

ローカル環境を立ち上げるのはここまでですが、Django Girls Tutorialではmodelやviewの作成など、実際にPythonを用いて定義していく部分も含まれますので、Pythonを文法をサッと学んだ身としては、ここからが醍醐味だなあ、という感じです。