【入門】FlaskでHello Worldする方法【Python】
本記事ではFlaskをインストールするところからHello Worldするまでをやさしく解説します。
著者環境
python: 3.6.8
Hello Worldまでの流れ
FlaskでHello Worldするまでの大きな流れは以下です。
- Flaskのインストール
- コーディング
- 実行
また最後にコーディングした内容を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アプリによく使われる構成なので実践的です。