# 一問一答形式「Flask」
【Q1】Flaskって何?
【A1】Flask(フラスコ/フラスク)はPythonのウェブアプリケーションフレームワークで、小規模向けの簡単なウェブアプリケーションを作るのに適しています。
【Q2】ウェブフレームワークって?
【A2】ウェブフレームワークとは、ウェブサイトやウェブアプリケーションを作るための機能を提供し、ウェブフレームワークを使わない時よりもより容易にウェブアプリケーションを作ることができるものです。
【Q3】pythonみたいなプログラム言語となんか関係する?
【A3】pythonはデータ解析用の言語として使われているのですが、実はウェブアプリケーションを開発するサーバーサイド言語としても使えます。要するに、pythonは結構いろいろなプログラムを作れる、とても優秀な言語だということです。Flaskはpythonのモジュールです。
pythonの他にもPHPやRudyなどの言語がありますが、高度な数値計算やウェブアプリケーション開発が同時に出来てしまうのがPythonの特徴です。
【Q4】Flaskのメリットは?
【A4】まず一つ目、Flaskは軽いです。Flaskは「マイクロ」ウェブアプリケーションフレームワークの名前通り、必要最低限の機能しか搭載されていないため、他のウェブアプリケーションフレームワークに比べて動きが軽くなります。そのため、多くの機能は必要としない単純なウェブアプリケーションなどに適しています。
二つ目は、機能が単純で学習が簡単なことです。搭載されている機能が多ければ、それぞれの機能について時間をかけて学んでいく必要があります。一方、Flaskは搭載されている機能が少ないためシンプルで学習が簡単です。
最後に、Flaskは自由でがとても高いことが挙げられます。一般的なウェブアプリケーションフレームワークでは、大体搭載されている機能をもとにアプリケーション設計をしていくため、あまりカスタマイズをすることはありません。
一方、Flaskは多くの機能を自分で実装していく必要があるため、要件に応じた細かなカスタマイズをすることが可能です。
デメリットとしては、Flaskは大規模なウェブアプリケーションを開発することに向いていないことが挙げられます。
【Q5】Flaskはどうやってつかうの?
【A5】Flaskは簡単にインストールできます。コマンドプロンプトを起動し、
```pip3 install Flask
```
を実行します。例えば、Hello worldを出力するためには
```from flask import Flask
app = Flask(__name__)
@app.route(‘/’)
def hello():
hello = “Hello world”
return hello
if __name__ == “__main__”:
app.run()
```
このプログラムを実行すると、
``` $ python3 hello.py
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
```
「http://127.io0.0.1:5000/」 のURLにアクセスをすると 「Hellow World」の表示を確認することができます。
【Q6】FlaskとIoTの関係は?
【A6】IoTにおいてFlaskはデータサーバーとして機能させることができます。サーバとクライアント間のデータのやり取りは、CSVやJSONフォーマットを使用します。
【Q7】JSONフォーマットとCSVどちらのほうがデータの受け取りに適しているのですか?
【A7】JSONフォーマットです。ほとんどの言語においてJSONのライブラリが提供されており、構造に柔軟性があるためCSVよりもJSONのほうが圧倒的に使いやすいからです。
以上のことから、Flaskが如何にウェブアプリケーションのフレームワークとして優れているのか、ということを理解できたかと思います。IoTとFlaskは切っても切り離せない関係だということもよくわかりました。IoTについての理解が一段と深まったように思えます。
参考文献
【Python】Flaskとは?FlaskでWeb開発の基礎を学ぼう!
【Flask入門】Python初心者でもわかるフレームワークを解説!
PythonのFlaskで簡単なWebアプリケーションを作ってみよう!