当サイトはPR広告を利用しています。

【入門】FlaskでHello Worldする方法【Python】

2019年7月9日

本記事ではFlaskをインストールするところからHello Worldするまでをやさしく解説します。

著者環境

python: 3.6.8

Hello Worldまでの流れ

FlaskでHello Worldするまでの大きな流れは以下です。

  1. Flaskのインストール
  2. コーディング
  3. 実行

また最後にコーディングした内容を1行1行解説していきます。

インストール

ubuntuをご利用の方は以下のコマンドを実行してFlaskをインストールしてください。

# flaskをインストールするため、python3系のパッケージを取得するためのツールであるpip3をinstallします
$ sudo apt install python3-pip

# pip3を使ってflaskのインストール
$ pip3 install flask

ubuntu以外をご利用の方は以下の記事に従ってFlaskをインストールしてください。

Hello World用コーディング

インストールが完了したら、Hello World用のコードを書いていきます。

hello_flask.pyというファイルを作成して以下のコードを記載します。作成するディレクトリはどこでも良いです。

from flask import Flask

app = Flask(__name__)

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

app.run()

実行

先ほど作成したPythonファイルを実行します。

$ python hello_flask.py
 * Serving Flask app "hello_flask" (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

出力された英文に一行ずつ和訳付けてみました。

 * Serving Flask app "hello_flask" (lazy loading)
 (和訳)"hello_flask"というFlaskのアプリケーションが利用可能状態です (遅延読み込み)
 
* Environment: production
 (和訳)環境: 本番環境

   WARNING: This is a development server. Do not use it in a production deployment.
 (和訳)注意: これは開発用のサーバーです。製品用には展開しないでください。

   Use a production WSGI server instead.
 (和訳)代わりにWSGIサーバーを使ってください

 * Debug mode: off
 (和訳)デバッグモード: off

 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
 (和訳)http://127.0.0.1:5000/で動いています(止めるためにはCTRL+Cを押すこと)

出力の最後の行で"http://127.0.0.1:5000/"にて動いているとのことなので、ブラウザで"http://127.0.0.1:5000/"にアクセスしてみましょう。

「Hello World」が出力されたと思います。

よく分かるコード解説

ここからはhello_flask.pyに書いたコードの一行一行がどんな役割を持っているのか解説します。

from flask import Flask

app = Flask(__name__)

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

app.run()
  • from flask import Flask

flaskというライブラリからFlaskクラスを持ってきています。

  • app = Flask(__name__)

__name__という名称をつけて、Flaskをインスタンス化しています。

__name__はpythonがもともと確保している変数(予約語)であり、特別開発者が値を代入するコードを書かなくても最初からファイルの名称が代入されています。今回の場合は__name__には"hello_flask"が代入されます。

__name__の詳細について知りたい方は以下の記事もご確認ください。

【Flask】初期化時の一つの謎を解明したので解説【無駄知識】

@app.route('/’)

ここが今回紹介したコードの中で一番難しい箇所です。
Flask公式サイトによると以下のように役割が説明されています。

We then use the route() decorator to tell Flask what URL should trigger our function.

つまり「引数として渡しているパスに対してアクセスが来たら、この直下の関数を実行する」というコードです。
今回の場合は"/"、つまりhttp://127.0.0.1:5000/(一番最後のスラッシュがルートを表している)にアクセスが来たら以下の関数が実行されることになります。

def hello():
    return "Hello World"

大切なところなので、もう一つ例を上げておきます。

@app.route('/ringo')
def apple():
    return "apple"

今回の場合はhttp://127.0.0.1:5000/ringoに対してアクセスがきたら、apple関数が実行されることになります。

app.run()

Flaskアプリケーションを起動させています。
起動後は先ほど説明した@app.route('/’)が効力を持つようになります。

まとめ

以上でFlaskでHello Worldするまでの流れは解説終了です。

Flaskとよく一緒に使われるuWSGI, nginxとの連携方法を以下の記事でまとめてるので、応用編として是非ご確認ください。記事内でuWSGIとnginxとは何かについても説明しているので、あまり気負わず読めると思います。この組み合わせはWebアプリによく使われる構成なので実践的です。

Pythonflask

Posted by ラプラス