【python入門】おすすめWEBフレームワーク3つを比較!

  • 2017-9-18

pythonは、最近注目を集めているプログラミング言語です。1991年に開発された言語で、実はその歴史は長く、海外ではかなり前から流行してました。Java、C言語についで第3位の人気というから驚きです。

そんなpythonですが、日本では人工知能の開発で話題を集めています。しかしpythonは人工知能に特化した言語ではありません。実はwebアプリ開発にも向いているのです。PHP一色だったwebアプリ開発ですが、徐々にpythonを採用する向きもでてきました。それを支えるのがpythonの豊富なフレームワーク群です。 本稿では、pythonのフレームワークについて解説していきます。

フレームワークとは?

プログラミング,kuguru,クグル,くぐる

フレームワークとは、プログラムの共通的な動きや処理を統一した手法で実現するための開発基盤のことです。JavaではStrutsやJavaEE、RubyではRuby on Railsあたりが有名です。フレームワークの役割は、プログラムをパターン化して実装することと、その際に必要な共通部品を提供することです。

フレームワークのメリット

  • 共通的な処理を何度も書かなくて良くなる
  • 複数人で開発する際、プログラムの書き方や構造が均一になりメンテナンスしやすい
  • 共通処理を書かないので生産性が向上する
  • 書かない箇所はテストしなくてよい
  • 変更が楽になる

フレームワークのデメリット

  • 大規模なフレームワークだと、ちょっとした処理を書くのにかえって手間がかかる
  • 低水準な処理をフレームワークに任せることが多いので、技術力不足になりやすい
  • 設定ファイルで制御する場合、設定ファイルが肥大化して管理が大変
  • 流行り廃りがあり、採用しているフレームワークが開発終了になることも

もちろんデメリットもありますが、それを考慮してもフレームワークを採用する価値は十分にあります。生産性の向上、保守しやすい(変更に強い)という点だけでも立派なメリットです。こうした背景もあり、最近の開発言語は積極的にフレームワークを取り入れるようになりました。もちろん、pythonにもフレームワークが用意されています。

pythonのおすすめフレームワークの種類

開発,ビジネス,kuguru,クグル,くぐる

Bottle

pythonの中でも超軽量なフレームワークです。その分動作が早く、シンプルで使いやすくなっています。本体がbottle.pyという1ファイルだけで構成されているため、導入に戸惑うこともありません。その上、強力なSimple Template Engineという機能がメモリキャッシュをするため、レンダリングが高速です。

Flask

機能を最小限に保つため、自身を「マイクロフレームワーク」と呼んでいるWebアプリケーションフレームワークです。軽量かつ自由度が高いのでどんなWebアプリケーションにも適合できるという特徴があります。ただし、拡張性が高い分、拡張した場合はしっかりとドキュメントを残しておかないと、メンテナンスするときに苦労する可能性があります。

Django

Webアプリケーションでは超メジャーなMVCデザインパターンのWebアプリケーションフレームワークです。pythonの代表的なフレームワークで、ほとんどの機能が備わっている、フルスタックフレームワークです。

Tornade

非同期ネットワークライブラリを搭載し、シンプルな記述で高速な処理ができるフレームワークです。ノンブロッキングタイプのため、時間がかかるIO処理を後回しにして、先にリクエスト処理を受け付けることができる、Webアプリケーション開発にはうれしい機能を持っています。

pythonフレームワークの比較

ビジネス,kuguru,クグル,くぐる

大規模開発にはDjango。中規模、小規模の開発にはBottleやFlask。

それでは、各フレームワークを比較してみましょう。
まずDjangoですが、MVCデザインパターンのメリットを受けることができます。例えば、

  • Webデザイナーとビジネスロジック実装プログラマが並行して作業をすることができる
  • Model、View、Controllerで処理担当がはっきりしているのでメンテしやすい
  • 他のMVC型フレームワークの開発経験があれば馴染みやすい

などです。

フルスタックなので、大規模なWebアプリケーション構築に向いています。このあたりは軽量型のBottleやFlaskより優れていると言えるでしょう。

反面、中規模、小規模の開発には必要以上の機能を搭載しているため、重たすぎる可能性があります。このくらいの規模には、BottleやFlaskを適用するのがよいでしょう。特のBottleは最軽量なので、小規模Webアプリケーション開発では威力を発揮します。

Tornadeはノンブロッキングの特性を活かして、アクセスが集中する恐れのあるWebシステムを構築するのに利用するのが良いでしょう。

 まとめ

本稿では、pythonのフレームワークについてご紹介しました。言語仕様もさることながら、フレームワークのできの良し悪しも非常に重要な要素です。その点pythonは、複数のフレームワークが提供されており、十分実用に耐えるWebアプリケーションを構築することができます。pythonの流行具合からすると、今後も新しいフレームワークが作成されるかもしれませんね。

ページ上部へ戻る