はじめに
今回はFlaskと呼ばれるWebアプリケーション開発フレームワークについて学ぶ。目的はFlaskの基本的な開発手法をマスターするためである。
Flaskとは何か?
FlaskはPythonというプログラミング言語で利用する軽量Webアプリケーションフレームワーク。
PythonのWebアプリケーションフレームワークでは、「Django(ジャンゴ)」が有名だが、Flaskは本格的でやや上級者向けのDjangoに比べて、設定が少なく、より学習コストが低い特徴がある。
Flaskのライセンス
Flaskはオープンソースのソフトウェアであり、商用・私的利用を問わず、無料で使用することが可能である。Flaskは、BSD3ライセンスと呼ばれるオープンソースの世界で一般的に使用されているライセンスを使用している。
Flaskのメリット・デメリット
Webアプリケーションの開発には、一般に最も簡単だと思われているPHPや日本では多くの実績のあるRubyonRails、Node.js(JavaScript)でのExpressなど、実に多くの選択肢がある。そのような選択肢を差し置いてFlaskを使うメリットはPythonという点である。
Pythonは最も学習コストが低いプログラミング言語の1つでありながら、バッチ処理、機械学習、統計処理や科学技術計算など非常に多くの応用が可能な汎用プログラミング言語である。
そして、PythonをWebアプリケーション開発の言語として使用する1番の理由は、これらの豊富なPythonのエコシステムを生かしたアプリケーションを容易に開発できることである。
- マイクロフレームワークなので、非常に軽い
必要最低限の機能しか持っていないので、余計な機能が動作を重くするといったことがない。
- 拡張性が高い
必要最低限のコア機能に、拡張機能を組み合わせて作成していくのがFlaskの設計思想。コア機能は、ルーティング、リクエスト処理などであり、初学者にも分かりやすいです。
- カスタマイズ性が高い
例えばDjangoではリレーショナルデータベースは必ずセットになるが、そもそもデータベースが必要ではないアプリケーションもある。た、NoSQLを利用したいといったケースもある。このような場合に、Flaskではかなり細かくカスタマイズ可能です。管理画面もDjangoではデフォルトで用意されているが、独自の画面や機能を用意したいといった場合もあり、このような場合ではFlaskが適している。
- シングルファイルフレームワーク
Flaskを利用する場合、Flaskをインストールして、1つのファイルに数行のコードを書き、ターミナル上で実行するだけですぐ動く。
PythonはWebアプリケーションに向いているか?
PythonはWebアプリケーションの用途ではあまり使用されていないという印象がある。
海外では、YouTubeやRedditなど、Pythonをメインの開発言語として採用しているサービスは多いが、国内では特に少ない。
これは、国内ではPythonとある意味でライバル関係にあるRubyが圧倒的に普及していることや、PythonにはRubyで言う所のRubyonRailsに相当する優れたWebアプリケーションフレームワークが存在しなかったことが挙げられる。
また、Pythonはほかのプログラミング言語に比べてもあまり多くのリクエストを裁くことは不得意な傾向があることも利用されていない点としてあげらるれかもしれない。
Flaskを動かしてみる
コンソールで実行
pip install Flask
ソース
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return "Hello World!"
if __name__ == '__main__':
app.run()
コンソールで実行
終わりに
今回はひとつのファイルだけでFlaskアプリケーションを作成することができた。次にFlaskでのブログアプリケーションの作成にとりかかる。
コメント