コンテンツにスキップ

第1章 Flaskの実行

1 Flaskの利用

FlaskはPythonで利用できるWebフレームワークです。WebフレームワークとはWebアプリケーションを簡単に作成できる「枠組み」のことです。さまざまな言語でさまざまなWebフレームワークがありますが、どれも基本的な仕組みは似通ったものになってきています。

Flaskを利用すると、ユーザが入力した内容に対応した動きが出来るWebアプリケーションを作ることが出来ます。

Flaskを利用するにはまずインストールが必要です。pipを使い、インストールを行います。

pip install flask Flask-SQLAlchemy

2 はじめてのFlask

では、pythonのコードを書いてみます。web.py という名前でファイルを作ります。 そして以下のように記述します。

from flask import Flask, render_template, request, redirect

app = Flask(__name__)

@app.get('/')
def index():
    return "Hello World!"

app.run(debug=True)

まず、変数appにFlaskオブジェクトを作成します。

次にURLとそれに対応する関数について書きます。 1つのURLに対し1つの関数を割り当てます。 @app.get(URL) の書式で、どのURLに対応する関数かを指定し、その下に関数を書きます。関数の名前は何でもかまいません。関数内はreturnでブラウザに返すデータの内容を書きます。

最後に app.runでFlaskのWebサーバを起動します。

3 Flaskの実行

できあがったweb.pyを実行してみます。すると以下のように表示されます。

* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

このメッセージに表示されたアドレスにブラウザでアクセスすると、「Hello World!」と表示されます。

このURLの意味は、まず 127.0.0.1 というのは自分のパソコンのIPアドレスを表します。これは通常 localhost にも置き換え可能です。そのあとの :5000 はポート番号です。Flaskは通常は5000番ポートで実行されます。

終了するには、Ctrl+Cキーを押してください。

なお、app.runの引数で debug=Trueを指定しておくと、修正が自動的に反映したり、エラーメッセージもブラウザ上で確認できるなど開発時に便利な機能がオンになります。

app.run(debug=True)

ただし、完成して実際に公開する時にはこれはFalseにします。

4 ルーティング

app.get(URL)と書いて、その下に関数を書くことで、そのURLにアクセスがあったときに、そのURLが呼ばれるようになります。これをルーティングと呼びます。

例えば、/hello にアクセスするときに呼ばれる関数 hello() を追加してみます。

@app.get('/hello')
def hello():
    return "こんにちは"

http://127.0.0.1:5000/hello にアクセスすると、「こんにちは」が表示されます。

問題

/keisan でアクセスできる kensan関数を作成し、「計算」と表示しよう。

5 URLでデータを与える

URLにデータを指定し、関数に渡すことが出来ます。 例えば、hello の後ろに /tanaka を付けてアクセスします。

http://localhost:5000/hello/tanaka

これを受け取るには@app.getのURLの後ろに /<変数名> を書きます。例えば /<name> としてみます。そして、関数の引数にその変数名を書くことで受け取ることができます。

@app.get('/hello/<name>')
def hello2(name):
    return f"こんにちは。{name}さん"

ここではreturn の文字列をf文字列にし、nameを表示しています。

問題

/keisan/10 でアクセスすると、10を2倍にし「答えは20」と表示しよう。 ※ヒント:URLで と指定することでデータはint型になります。