タワ記

気が向いた時にだけ書く、技術メモっぽいもの。

FlaskでHello World!

※この記事はUbuntu 16.04、Python3.5、Flask 0.12.2を前提として記載しています。

この記事に書いてあること

Flaskとは

Pythonで書けるWebアプリケーションフレームワークです。

私は元々組み込み系と呼ばれる分野を中心に仕事をしてきましたので、Web関係は縁遠い存在でした。しかし、仕事の幅が広がっていく上で「ちょっとしたWebアプリケーション」があればいいな、と思うことも増えてきました。

いまどきのWebアプリケーション開発といえば、フレームワークを使うんでしょ?くらいの知識はありましたが、いろいろあって何を使えばいいのか、すぐには分かりませんでした。とりあえずPythonなら慣れていて取っ付き易いかも・・という理由でPythonベースのFlaskを調べることにしました。

公式Hello World!

Welcome | Flask (A Python Microframework)を見ると、"Flask is Fun"ということで、いきなりHello Worldのコードらしきコードが出てきます。

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

なるほど、これは楽しいです。"/"にアクセスしたらHello World!が返りそうだ、ということが直感的に分かります。
この時点で私はFlaskを使って行こうと心に決めました。

でもWebアプリケーションって、Apacheなりnginxなりを設定して、Webサーバー立ち上げないといけなくて面倒だな・・・と思っていたのです。
しかし、上記公式ページのHello Worldの下には"And Easy to Setup"というのがあり、これを見ると単独でWebサーバーにもなってくれそうで、簡単そうじゃないですか!
せっかくPython3で仮想環境(venv)を使おう。 - タワ記も書いたので、venvを使った仮想環境も作りつつ試してみましょう。

$ python3 -m venv flask_hello
$ cd flask_hello
$ source bin/activate
$ pip install Flask

ここまでやって、あとは上記Hello Worldをhello.pyとして作成します。

$ FLASK_APP=hello.py flask run
 * Running on http://localhost:5000/

別のターミナルから、curllocalhost:5000/を読んでみます。

$ curl http://localhost:5000
Hello World!

素晴らしい。
ただし、これですと単に生テキストが返ってきているだけですので、次回はこれを少し発展させて、htmlなHello Worldを返してみることにします。