Pythonを始めるなら、1ファイルの軽量Webフレームワーク「Bottle」がおすすめ
「全てのwebエンジニアがPythonを勉強するべき2013年到来」(2013-01-01)という記事が人気を集めているようだ。巳年(ヘビ年)にひっかけて、これからPythonを勉強したい人を対象に、書籍やライブラリなどを紹介している。有益な情報が多数含まれているが、ちょっとPythonを試してみたいという程度の人には、これだと敷居が高すぎるように思う。
Pythonに限らないが、あたらしい言語をはじめるとき、もっとも障害になるのは「環境構築」だろう。Pythonの場合、LinuxやMacであれば、Pythonインタプリタは最初から入っているので、Pythonそのものをインストールする必要はない。しかし、「そのあとどうするのか?」というのが、なかなかむずかしい。例えば、「Hello, World!」を出すWebアプリを書くには、そこからどうすればいいのか。なんらかのWebフレームワークを使うにしても、それをどうやって入れるのか。それを入れる「環境」は、どうやって作るのか。この「環境構築」こそ、あたらしい言語をはじめるときにブチあたる、最初のカベだろう。
Pythonの「環境構築」は、いまなら「virtualenv」を使うのが最有力のようだ。本格的にPythonをやるならば、virtualenvの設定方法や、pipの使い方などを知る必要があるだろう。しかし、単にPythonでWebアプリをちょっと書いてみたいという程度であれば、そこまでしなくても、軽量Webフレームワーク「Bottle」を使うのがいいと思う。
Bottle: Python Web Framework
http://bottlepy.org/
「Bottle」は、「bottle.py」という1ファイルだけでできている。1ファイルだけなので、「インストール」する必要がなく、カレントディレクトリに置いておくだけでいい。「インストール」する必要がないから、「環境構築」が不要なのだ。これは、Python初心者にとって大きなメリットだろう。
Bottleを使って、「Hello, World!」を出すWebアプリを作るには、
1. Pythonインタプリタの確認
2. 適当な作業用ディレクトリを作って、そこに移動
3. 「bottle.py」を置く
4. 「hello.py」(自分のWebアプリ)を作成
5. 「python hello.py」で起動し、ブラウザで確認
のようにする。
1.のPythonインタプリタ確認は、ターミナルで「python」と打って、「Python 2.7.3 (中略)>>>」のように出ればOK。これは「対話モード」による起動なので、ここでは「exit()」などで終了しておく。
3.の「bottle.py」は、現時点でのBottleの最新版のページにある「bottle-0.11.4.tar.gz」を落として解凍すると、中に「bottle.py」が入っているので、それを使う。解凍が面倒な人は、GitHubにある開発版を直接落としてもOK。
4.の「hello.py」は、以下のようなものをテキストエディタで作成し、ファイル名を「hello.py」とする。
from bottle import route, run
@route('/hello')
def hello():
return "Hello World!"
run(host='localhost', port=8080, debug=True)
(これは公式チュートリアルにあるサンプルコード)
これで、5.の「python hello.py」とターミナルで打てば、Webサーバが8080番ポートで起動する。ブラウザで「http://localhost:8080/hello」にアクセスして、「Hello World!」と出れば成功だ。
これがうまくいったら、チュートリアルの「Request Routing」などを参考にして、「hello.py」をいろいろ変えてみてほしい。
「bottle.py」自体も、Pythonの生きた教材になっている。Bottleはすべてを1ファイルに収めるというコンセプトのため、Pythonでコードを書くお手本にはあまり向いていないが、Pythonでよく使われる表現、テクニックが多数含まれている。「この__call__とか__get__とかいうのはなんだ?」というふうに、自分の知らないものを見つけて、ちょっとずつ勉強していくきっかけにする、というのがいいと思う。
関連エントリ:
Pythonで関数プログラミング入門
http://mojix.org/2009/04/26/python_functional
Pythonを使って、1行でファイル共有Webサーバを立ち上げる
http://mojix.org/2009/03/05/python_one_line_fileserver
Pythonモードがある日本製テキストエディタ 「JmEditor」
http://mojix.org/2008/07/18/jmeditor
Pythonに限らないが、あたらしい言語をはじめるとき、もっとも障害になるのは「環境構築」だろう。Pythonの場合、LinuxやMacであれば、Pythonインタプリタは最初から入っているので、Pythonそのものをインストールする必要はない。しかし、「そのあとどうするのか?」というのが、なかなかむずかしい。例えば、「Hello, World!」を出すWebアプリを書くには、そこからどうすればいいのか。なんらかのWebフレームワークを使うにしても、それをどうやって入れるのか。それを入れる「環境」は、どうやって作るのか。この「環境構築」こそ、あたらしい言語をはじめるときにブチあたる、最初のカベだろう。
Pythonの「環境構築」は、いまなら「virtualenv」を使うのが最有力のようだ。本格的にPythonをやるならば、virtualenvの設定方法や、pipの使い方などを知る必要があるだろう。しかし、単にPythonでWebアプリをちょっと書いてみたいという程度であれば、そこまでしなくても、軽量Webフレームワーク「Bottle」を使うのがいいと思う。
Bottle: Python Web Framework
http://bottlepy.org/
「Bottle」は、「bottle.py」という1ファイルだけでできている。1ファイルだけなので、「インストール」する必要がなく、カレントディレクトリに置いておくだけでいい。「インストール」する必要がないから、「環境構築」が不要なのだ。これは、Python初心者にとって大きなメリットだろう。
Bottleを使って、「Hello, World!」を出すWebアプリを作るには、
1. Pythonインタプリタの確認
2. 適当な作業用ディレクトリを作って、そこに移動
3. 「bottle.py」を置く
4. 「hello.py」(自分のWebアプリ)を作成
5. 「python hello.py」で起動し、ブラウザで確認
のようにする。
1.のPythonインタプリタ確認は、ターミナルで「python」と打って、「Python 2.7.3 (中略)>>>」のように出ればOK。これは「対話モード」による起動なので、ここでは「exit()」などで終了しておく。
3.の「bottle.py」は、現時点でのBottleの最新版のページにある「bottle-0.11.4.tar.gz」を落として解凍すると、中に「bottle.py」が入っているので、それを使う。解凍が面倒な人は、GitHubにある開発版を直接落としてもOK。
4.の「hello.py」は、以下のようなものをテキストエディタで作成し、ファイル名を「hello.py」とする。
from bottle import route, run
@route('/hello')
def hello():
return "Hello World!"
run(host='localhost', port=8080, debug=True)
(これは公式チュートリアルにあるサンプルコード)
これで、5.の「python hello.py」とターミナルで打てば、Webサーバが8080番ポートで起動する。ブラウザで「http://localhost:8080/hello」にアクセスして、「Hello World!」と出れば成功だ。
これがうまくいったら、チュートリアルの「Request Routing」などを参考にして、「hello.py」をいろいろ変えてみてほしい。
「bottle.py」自体も、Pythonの生きた教材になっている。Bottleはすべてを1ファイルに収めるというコンセプトのため、Pythonでコードを書くお手本にはあまり向いていないが、Pythonでよく使われる表現、テクニックが多数含まれている。「この__call__とか__get__とかいうのはなんだ?」というふうに、自分の知らないものを見つけて、ちょっとずつ勉強していくきっかけにする、というのがいいと思う。
関連エントリ:
Pythonで関数プログラミング入門
http://mojix.org/2009/04/26/python_functional
Pythonを使って、1行でファイル共有Webサーバを立ち上げる
http://mojix.org/2009/03/05/python_one_line_fileserver
Pythonモードがある日本製テキストエディタ 「JmEditor」
http://mojix.org/2008/07/18/jmeditor