【Python】開発効率をアップするオススメのフレームワーク4選
フレームワークは開発を効率化するためによく使用されています。Pythonにはさまざまなフレームワークが存在し、それぞれ特徴があります。
しかし、これからフレームワークの学習や開発をする方にとって、「そもそもフレームワークって何?」「どのフレームワークを使用すればよいかわからない」のような疑問に直面すると思います。
そこで、ここではPythonのフレームワークを使ってみたい人に向けて、おすすめのフレームワークを紹介していきます。
目次
そもそもフレームワークとは
フレームワークを使用するためには、MVCモデルについて理解する必要があります。
MVCとは「Model(モデル)」「View(ビュー)」「Controller(コントローラー)」の頭文字を取ったものです。
それぞれに明確な役割があるため、「処理を記述しやすくなる」「作業を担当者ごとに分担できる」といった大きなメリットがあります。
Model
アプリケーションのデータの管理や制御を行います。
ユーザーの操作を受けたViewやControllerから受け取った命令を処理し、 アプリケーションデータ、ルール、関数、ロジックなどプログラミングでよく行う制御を担当します。
View
Modelから受け取った更新情報を元に動的に画面に表示を行います。
ユーザーが見やすいように画面を表示する部分(フォーム画面やグラフや図)を担当します。
Controller
ModelとViewの橋渡し的な役割を行います。
Viewから受け取ったデータを演算してModelに送ったり、表示させるためのデータに変換してModelに伝える部分を担当します。
おすすめのフレームワーク
ここではPythonのおすすめのフレームワークについて紹介していきます。
フレームワークを使用する前提条件として、Pythonの基礎については理解している必要があります。
それぞれの特徴は以下のようになっています。
フレームワーク | 特徴 | 難易度 |
---|---|---|
Bottle | 1ファイルのみで構成されているため構造がわかりやすい | 初心者向き |
Flask | 機能を最小限に絞ったマイクロフレームワーク。簡単に実行できる。 | 中級者向き |
Django | 多機能でさまざまなアプリケーションを作成できるフルスタックフレームワーク。 | 中級者向き |
CherryPy | 通常のモジュール感覚で使用できる。動作が安定している。 | 中級者向き (日本語での情報が少ない ) |
Bootle
Bottleは高速で軽量、機能もシンプルな使い勝手のよいフレームワークです。
たとえば、Bottleのライブラリは「bottle.py」というPythonのファイルのみで構成されていて、構造がわかりやすく簡易的なアプリケーション作成に向いていると言われています。
その分比較的規模の大きなサービスの開発には向いていませんが、中規模程度のサービスなら十分開発が可能です。
他のフレームワークより機能面でおとりますが、導入も簡単でフレームワーク入門者に適していると言えるでしょう。
BottleはWebサービス開発で重要な「ルーティング」「テンプレート」「ユーティリティ」「サーバー」を提供しています。
Flask
FlaskはBottle同様に機能も最小限で軽量なフレームワークで近年人気が上昇しています。
機能がシンプルな分覚えることが少なく比較的簡単に開発を行えるため、中規模程度の開発でよく使われています。
また、Flaskは提供する機能を最小限に保っているため「マイクロフレームワーク」とも呼ばれています。
提供されている機能としてはWSGI(Web Server Gateway Interface)、開発用のサーバとデバッグ機能、テンプレートとしてJinja2を使用しています。
Django
DjangoはPythonのフレームワークのなかでも汎用性が高く、最も人気の高いフレームワークと言えるでしょう。
あらゆる開発を行う上でたくさんの機能が提供されているため、「フルスタックフレームワーク」と呼ばれています。
Djangoは比較的規模の大きな開発でよく使われていて、Pythonで開発を行う際に導入している企業も多いと言えます。そのため求人情報もフレームワークの中では一番多いです。
しかし、その分WebフレームワークのFlaskやBottle比べると覚えることが多く、慣れるまではとっつきにくさを感じるかもしれません。
CherryPy
CherryPyはオブジェクト指向のWebフレームワークで、使用することで通常のPythonプログラムのように簡単にWebアプリケーションを構築できます。
具体的にはCherryPyのフレームワークをPythonのモジュールとして呼び出して使用することができます。
以下は公式で紹介されているHello World!をブラウザで出力するプログラムです。importでモジュールを呼び出すようにCherryPyが使用できることがわかります。
import cherrypy
class HelloWorld(object):
def index(self):
return “Hello World!”
index.exposed = True
cherrypy.quickstart(HelloWorld())
CherryPyはリリースから10年以上経過しており、高速で安定して動作していることが証明されているため、簡単な開発から複雑な処理まで多くの開発の現場で使用されています。
また、CherryPyはWebサーバーとしても動作するこも可能で、WSGIが使える環境なら外部から操作することもできます。
まとめ
ここではPythonのおすすめのフレームワークを4つ紹介しました。
Pythonにはさまざまなフレームワークが存在しますが、ここで紹介したフレームワークは比較的有名で扱いやすいものを紹介しました。
ぜひ実際に導入してみて自分で使いやすいフレームワークを見つけていただければと思います。