#初めに(前書き)
今回は、PythonのWebアプリケーションフレームワークについて簡単に紹介していきたいと思います。
#本題(本文)
「Django」
Pythonにおける最も人気のあるフルスタックフレームワーク。
「Flask」
Pythonで書かれたマイクロフレームワーク。
「Masoniite」
モダンで開発者中心のフレームワーク。
「Pyramid」
「小さく、速く、堅実な」オープンソースのフレームワーク。
「Sanic」
とにかく速く動くように書かれたフレームワーク。
「Vibora」
Flaskにインスパイアされたフレームワーク。
「Tornado」
非同期ネットワークライブラリとセットにされたフレームワーク。
※調べてみると、1番人気は「Django」で、2番人気が「Flask」といったところでしょうね。
ここからは、「Django」と「Flask」の違いについて解説・紹介しておきます。
「Django」は、2005年に開発されたもので、Webアプリケーションに必要な機能が一通り揃っているフルスタックフレームワークです。フルスタック(=全部入り)なので、環境ファイルや設定ファイルの作成・編集などの手間がかかるというデメリットもあります。
Djangoを使った有名なWebアプリ(サーヴィス)としては、「Instagram」「Bitbucket」「Udemy」「Dropbox」「Spottify」「Youtube」などが挙げられます。
「Flask」は、2010年に開発されたもので、Webアプリケーションに最小限必要な機能のみを備えたマイクロフレームワークです。その分、自由度やカスタマイズ性は高いです。あと、「シングルファイル」という仕様・設計となっていて、たった一つの実行ファイル(=.py)でWebアプリケーションを作れてしまいます。
Flaskを使った有名なWebアプリ(サーヴィス)としては、「Netflix」「Lyft」「Maigun」「Pinterest」などが挙げられます。
ちなみに、Flaskは、「WSGI」(=ウィズギィー)と呼ばれる「WebアプリとWebサーヴァーをつなげて連携させる規格」に準拠しています。
※「Django」「Flask」の両者に共通するのは、どちらもBSDライセンスで提供されていることと、MTVアーキテクチャーに基づいて設計されているということの2点です。
※MTVアーキテクチャーとは、Webアプリを「Model」「Template」「View」の3者で構成するという設計思想です。
筆者個人は、「Flask」を推したいので、Flaskでのコードサンプルを掲載しておきます。
#Flaskをインポートする。
from flask import Flask
#このプログラムファイルを基に、Flaskのアプリケーションモジュールを作る。
app = Flask(__name__)
#WebクライエントからWebサーヴァーのURL(=ルート)にアクセスされた際の動作。
#この場合、クライエント(=ブラウザー)に、"Hello World"という文字列を返します。
@app.route('/')
def hello_world():
return "Hello World"
#このファイルが直接実行された場合のみ、Flaskアプリのモジュールを起動・実行します。
if __name__ == ('__main__'):
app.run()
Flaskでは、たったこれだけで一番簡単なWebアプリがつくれてしまうのです!。
すごいですよね。これがJavaだったら、Springだったらと思うとゾッとします(笑)。
※正確には、Flaskと「Werkzeug(ヴェルクツォイク)」を併用しないといけないそうですが・・・。
#終わりに(後書き)
いかがでしたでしょうか?。
この記事が、今後PythonでWebアプリをつくろうと考えている方のお役に立てれば幸いです。
それではまた~。