Flaskの概要と簡単な動作確認|Flaskで作る簡易APIサーバー #1

f:id:lib-arts:20191017182256p:plain

ちょっとしたきっかけでFlaskを再度確認することがあったのですが、以前作成した内容が若干動かないなどあったので、情報の再整理も兼ねて情報をまとめていきます。FlaskはHTTPアクセスが可能な簡易的なAPIを作成する、Pythonベースのフレームワークです。

Flaskへ ようこそ — Flask v0.5.1 documentation

基本的には上記などのドキュメントを元にした動作確認や、簡単に内容をカスタマイズして実行してみるなどを行えればと思います。
#1ではFlaskの概要と簡単な動作確認について行います。
以下目次となります。
1. Flaskの概要&インストール
2. Flaskのサンプルコードの動作確認
3. まとめ

 

1. Flaskの概要&インストール
1節ではFlaskの概要の確認と、インストールを行います。まずはWikipediaの記述を元に概要の把握を行います。

f:id:lib-arts:20191017190649p:plain

Flask - Wikipedia

上記がWikipediaのページの冒頭部ですが、FlaskはPython用に構築されている、軽量なWebアプリケーションフレームワークとされています。Webのフレームワークは大きく分けると、Ruby on Rails(Ruby)やDjango(Python)のような一通り機能の入ったフルスタックフレームと、Sinatra(Ruby)やFlask(Python)のようなAPI構築にあたって最低限の機能のみを提供する軽量フレームワークの二つに分類されます。
FlaskはPythonベースの軽量のフレームワークで、Werkzeug WSGIとJinja2テンプレートを基に作られているとされています。Werkzeug WSGIについてはWebサーバを動かすにあたってのインターフェースであり、ApacheやNginxなどのWebサーバにおいてアプリケーションのロジックを動かす際に重要な役割を果たします(ここで注意として、多くのWebアプリケーションフレームワークではrunserverのような簡易サーバを提供してくれているのですが、runserverはあくまで動作検証用のため開発環境のみで使用し、本番環境では使ってはいけないとされています)。

f:id:lib-arts:20191017211050p:plain

詳細の機能に関しては上記のように、データベース抽象化レイヤーやフォーム値の検証などの機能を持たないとされています。基本的にはテンプレートエンジンとサーバとのつなぎの部分を中心に機能が実装されていると考えておくと良さそうです。

次に簡単にインストールについてみておきます。
インストールは簡単で、"pip install flask"を実行することでインストールを行うことができます。チュートリアルではソースからコンパイル方法がメインで書かれていますが、とりあえず実行してみるだけならpipを用いてインストールするで問題ないかと思います。


2. Flaskのサンプルコードの動作確認
1節ではFlaskの概要とインストールについて確認し、大体の概要は把握できたところで2節ではサンプルコードの動作確認について行えればと思います。

f:id:lib-arts:20191017212054p:plain

まずは上記のクイックスタートについて確認します。上記のコードをhello.pyと名付けて保存し、"$ python hello.py"のように実行を行います。

f:id:lib-arts:20191017212632p:plain

実行結果としては上記に記載があるようになります。立ち上げたコンソール上では"* Running on http://127.0.0.1:5000/"のような出力が確認できます。また、"http://127.0.0.1:5000/"にブラウザでアクセスすると"Hello World!"と出力されます。ここで"http://127.0.0.1:5000/"において、"http://127.0.0.1"はローカルホストのサーバ(ローカルPCをサーバのように使っている)、5000はポート番号を意味しています。このようにローカルPCで簡易的なWebサーバを立ち上げて、開発したアプリケーションの確認を行うことができます。

f:id:lib-arts:20191017212643p:plain

処理の仕組みについては上記のように書かれていますが、最初から意識すると難しいので、一旦は3の"@app.route"にURLを記載して、returnの出力を得るとだけ理解しておけば一旦十分だと思います。


3. まとめ
#1ではFlaskの概要の把握とインストール、サンプルコードの動作確認を行いました。実行したコード自体は非常にシンプルなものでしたが、HTTPでアクセスできる簡単なWebアプリケーションの動作ができていることがわかったかと思います。
#2では引数や返り値など、よりリッチなAPIを作成するにあたって確認していければと思います。