2
3

More than 1 year has passed since last update.

Python Webアプリケーションフレームワークについて簡単に紹介(学習まとめ)

Last updated at Posted at 2022-01-17

初めに(前書き)

今回は、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アプリをつくろうと考えている方のお役に立てれば幸いです。
それではまた~。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3