【入門】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アプリによく使われる構成なので実践的です。

直近でおすすめの本

直近十数冊読んだ中で一番おすすめの本です。

人が行動をするに至るまでのステップを科学的に分析した上で、その結果を習慣と紐付けて解説してくれている本です。

悪い習慣を断ち、良い習慣を継続する方法を詳細に説明してくれています。習慣が人を作っているので、この本の内容を実践できれば人生を大きく好転させられる気がしました。

この本の最初の方に説明があるのですが、複利という考え方があり毎日1パーセントだけの増加でもそれが続くととてつもない倍率になります。これは投資でよく用いられる概念ですが、良い習慣は未来への投資なので習慣にもあてはまります。良い習慣を身に付けるのは早ければ早いほど良いです。

私はまず長時間YouTubeを見てしまう習慣を断って、直近の業務に役立つITの勉強を習慣として身に付けよう思います。

Pythonflask

Posted by ラプラス