Pythonのフレームワークとは?人気の5種を徹底比較

Pythonのフレームワークって何があるの?
Pythonのフレームワークはどんな種類があるの?
Pythonのおすすめのフレームワークが知りたい

など、Pythonのフレームワークについて疑問をもっていませんか?

PythonはAI(人工知能)開発で、注目を集めている近年人気のプログラミング言語です。同時にたくさんのフレームワークも登場しています。

しかし、数が多すぎるゆえに、開発時どのフレームワークを使ったらよいのか、またどのフレームワークを学習したらよいのか悩ましいですよね。そこで今回は、Pythonのおすすめフレームワークと目的別の選び方を解説していきます。

この記事を読むことで次のことがわかるようになります。

Pythonのフレームワークとは

画像:Pythonのコーディング画面

フレームワークとは、システム開発を効率化できるように、よく使う基本的な機能をまとめて提供してくれるもの。自分でプログラミングを全て行う場合、莫大な量のソースコードを記述する必要があり、アプリ開発をする際にとても時間がかかってしまいます。

しかし、フレームワークを使用することによって、開発業務を大幅に短縮できます。

また、フレームワークはどこに何をかくのかある程度ルールが決まっているため、プログラムの書き方を統一しやすく、他の人が作ったソースコードも読みやすいのも大きなメリットです。

そのため最近では、アプリ開発に必要なものをまとめて提供しているフレームワークを使って開発を行うのがスタンダードとなっています。

ちなみにフレームワークについては、以下の動画でも詳しく解説していますので、ぜひ参考にしてくださいね。

フレームワークとは?知っておきたい基礎知識を初心者向けに解説

Pythonで使えるフレームワーク3つ種類

画像:Pythonのフレームワークを使用する様子

Pythonで利用できるフレームワークには、3つのタイプがあります。

  • フルスタックフレームワーク(Full-Stack Framework)

  • マイクロフレームワーク(Microframework)

  • 非同期フレームワーク(Asynchronous Framework)

 

それぞれのフレームワークについて解説していきます。

フルスタックフレームワーク

Web開発に必要なものがまとまっているフレームワークです。

データベースからのデータ取得処理、ログイン認証、各種フォームの作成など、Web開発に必要な機能がすべて揃っているフレームワークです。そのため小規模な開発だけでなく、大規模な開発にも使えて汎用性が高いのが特徴です。

機能が豊富な反面、覚えることが多く、学習コストが高くなりやすいです。

【代表的なフルスタックフレームワーク】
  • Django

  • web2py

  • Pylons

  • CubicWeb

 

マイクロフレームワーク

マイクロフレームワーク

画像:マイクロフレームワークを利用している様子

必要最低限の機能がまとめられているフレームワークです。

フルスタックフレームワークと比べると、機能が少なく軽量です。そしてシンプルなので自由度が高いという特徴があります。必要最低限の機能でシンプルな設計になっているため、覚えることが少なく初心者でも理解しやすいです。

マイクロフレームワークは、小規模な開発に向いています。

【代表的なマイクロフレームワーク】
  • Flask

  • Bottle

  • CherryPys

  • Dash

 

非同期フレームワーク

同時に複数接続処理が可能なフレームワークです。

非同期通信ができるため、データの送信者と受信者でタイミングを合わせないで処理できるのが特徴。レスポンスが早く効率的に作業できるので、人気があります。

【代表的な非同期フレームワーク】
  • Tornad

  • Sanic

  • Growler

  • Aiohttp

 

Pythonの鉄板フレームワークおすすめ5選

Pythonのおすすめフレームワーク

画像:Python

ここからはPythonのフレームワークについて紹介していきます。まずは鉄板フレームワークでおすすめの5つです。

  • Django

  • Bottle

  • Flask

  • Tornado

  • web2Py

 

それぞれのフレームワークについて解説していきますね。

さまざまな開発で使える「Django」

Django

引用元:django

Djangoとは?

公式サイトのフレームワーク紹介には次のように書かれています。

DjangoはハイレベルなPythonのWebフレームワークです。実用的に作られた素早く精錬された開発環境を提供します。ひとことで言うと、Djangoは多機能な万能型WEBフレームワークです。

言い換えると、さまざまな用途で使えるフレームワークということです。定番のフレームワークであり情報も多いため、初心者に一番おすすめです。

Djangoで開発されたサービスに「Instagram」や「Pinterest」があります。Python界での世界シェアNo.2なので、今後も広く使い続けられます。

Python界での世界シェア

Djangoの仕事

例えばForkwellには次のような案件があります。

Forkwell Scout

引用元:Forkwell Scout

Djangoを用いて新しい技術も積極採用しているチームのようです。音楽SNSサービスのAPI開発や設計等を担当していただくと記載があります。1500万までという年収も魅力的ですね。

こんな人におすすめ

  • Pythonエンジニアとして仕事したい方

  • Pythonで色々な物を作りたい方

  • 初心者の方

 

Djangoのメリットやデメリット、できることなどに関してこちらの記事で詳しく解説しています。興味がある方は参考にしてください。

Djangoでできることとは?他のフレームワークとの違いも解説!
更新日 : 2019年10月22日

1ファイルで導入できる「Bottle」

Bottle

引用元:Bottle

Bottleとは?

1ファイルで導入できる「超お手軽」なフレームワーク。フレームワークの導入もお手軽に行えます。ひとことで言うと「シンプルイズベスト」なフレームワークです。

おすすめ理由

まだまだ知名度こそ低いものの、地味に人気を集めてきています。比較的新しい技術で、軽量なフレームワークのためアクセス速度もある程度担保でき、要件によって本格的なアプリ開発に利用することもあります。

初学者がWEBフレームワーク入門として利用するにもおすすめです。

Bottleの仕事

日本でBottleのフレームワークを利用するという求人はほとんどありません。現在はあくまで学習用、または自分のWEBサービス用として利用することになるでしょう。

こんな人におすすめ

  • まずはPythonでフレームワークに触れてみたい方

 

「Bottleについてもっと詳しく知りたい」という方はこちらの記事をご覧ください。

PythonのWebフレームワークBottleとは?導入方法まで解説
更新日 : 2019年5月30日

軽量で利用しやすい「Flask」

Flask

引用元:Flask

Flaskとは?

公式サイトのフレームワーク紹介には次のように書かれています。

フラスクはパイソンの小規模なフレームワークで、Jinja2というツールとWerkzeug(ヴェルクツォイク:ドイツ語でツールという意味)というプログラミングに使用するキットを用います。

Djangoに近い考え方ですが、面倒な部分を省いて軽量化させたようなフレームワークです。

Flaskで簡単に構築できる機能には以下があります。

  • ユーザー認証

  • 管理画面

  • サイトの案内ぺージ

  • RSSフィード

 

おすすめ理由

トレンド比較時に覧ていただいた通り、人気が上がってきているフレームワークです。比較的軽量で利用しやすく、これから更にシェアの伸びが期待できます。

Flaskの仕事

例えばForkwellという採用技術の詳細が分かる求人サービスでは、次のような仕事が募集されています。

Forkwell Scout

引用元:Forkwell Scout

自社で開発・運営しているWebサービスのサーバサイドの設計や実装をお任せするそう。こちらでは年収1000万円くらいまで目指せます。

Forkwell Scout

引用元:Forkwell Scout

機械学習やAIに強いならフルリモートで、年収1000万円を狙える求人もありました。

こんな人におすすめ

  • Pythonエンジニアや機械学習エンジニアを検討している方

 

Flaskの基本や、インストールの方法などの使い方に関してはこちらの記事を参考にしてください。

【Python】フレームワークFlaskの基本をマスター
更新日 : 2019年8月7日

非同期で処理が早い「Tornado」

Tornade

引用元:Tornade

Tornadoとは?

Tornadoの公式サイトによると、次のように書かれています。

ノンブロッキングネットワークI / Oを使用することで、Tornadoは数万のオープン接続に拡張でき、ロングポーリング、WebSocket、および各ユーザーへの長時間の接続が必要なその他のアプリケーションに最適です。

TornadoはPythonの非同期フレームワークでライブラリでもあります。

おすすめの理由

非同期フレームワークのため、シンプルで処理スピードが早いのが特徴です。他のフレームワークに比べると知名度は低いですが、使い勝手がいいので、興味があるなら勉強してみるのもいいでしょう。

Tornadoの仕事

日本でTornadoのフレームワークを利用するという求人はほとんどありません。現在はあくまで学習用、または自分のWEBサービス用として利用することになるでしょう。

こんな人におすすめ

  • とにかく非同期フレームワークを使ってみたい方

 

Tornadoの使い方やインストールの方法は、こちらの記事で紹介しているため、よかったら参考にしてください。

PythonのWebフレームワークTornadoをわかりやすく解説!
更新日 : 2020年5月8日

フルスタック開発ができる「web2py」

web2py

引用元:web2py

web2pyとは?

web2pyは、アジャイルで開発するためのフルスタックフレームワークです。Windows、Mac、Linuxいずれにも対応したフレームワークで、セキュリティにも重点が置かれています。

web2pyにはデータベースやWebサーバ、APIライブラリーが含まれていて、web2py内で開発を完結できます。また、SQLインジェクションやクロスサイトスクリプトといった脆弱性の問題を未然に防ぐ仕組みがあり開発しやすいです。

また、データベース・Webサーバなど、必要な機能はすべてweb2pyが提供しています。そのため、開発をフレームワーク内で完結することが可能です。

web2pyの仕事

日本でweb2pyのフレームワークを利用するという求人はほとんどありません。現在はあくまで学習用、または自分のWEBサービス用として利用することになるでしょう。

こんな人におすすめ

  • フレームワーク初学者の方

  • PythonでWebアプリケーションの開発をしたい方

 

Pythonの人気上昇中のフレームワーク2選

Pythonの人気上昇中のフレームワーク

画像:人気上昇中のフレームワーク

続いては人気上昇中のフレームワークを2つ紹介します。

  • Tensorflow

  • Pytorch

 

それぞれのフレームワークについて解説しますね。

Googleが開発した機械学習向けの「Tensorflow」

Tensorflow

引用元:Tensorflow

Tensorflowとは?

Tensorflowとは、Google社が開発しているフレームワーク。機械学習向けに開発されました。世界的に見ると最もシェアがあるフレームワークと言われており、Googleはもちろんのこと、Intelやツイッター社など多くの企業で採用されています。

人気上昇中の理由

機械学習向けに開発されたフレームワークであること、オープンソースで提供されていることが人気上昇中の理由です。また、Python以外の言語でも使えることも理由の1つとしてあげられます。

その他、Tensorflowの利用者が集まるコミュニティの大きさに比例して、情報量が多いことも人気の理由です。

Tensorflowの仕事

例えばForkwellには次のような案件があります。

Forkwell

引用元:Forkwell

AI×SaaSの自社プロダクトを3つ展開しているようです。AIの開発に携わりたい人に合いそうですね。

こんな人におすすめ

  • 機械学習や深層学習を学びたい方

  • AIの開発に携わりたい人

 

Tensorflowの使い方やインストールの方法はこちらの記事で紹介しているため、よかったら参考にしてください。

【TensorFlow入門】機械学習フレームワークTensorFlowを学ぼう
更新日 : 2020年7月20日

Facebookが開発した深層学習向けの「Pytorch」

Pytorch

引用元:Pytorch

Pytorchとは?

Pytorchは、Facebookが開発を主導した深層学習向けのフレームワークです。フレームワークの中では比較的新しく、2016年後半に発表されました。

人気上昇中の理由

Pytorchが人気の理由は、機械学習でよく使われるライブラリ「Numpy」と操作方法が似ていること。そのため、普段使っているNumpyと同じような感覚でPyTorchを使うことができます。

Pytorchの仕事

Pytorchを扱う仕事には次のようなものがあります。

Forkwell

引用元:Forkwell

自然言語処理・機械学習に関わる研究開発を担当できるそうです。

こんな人におすすめ

  • Numpyを使ったことがある方

  • 機械学習の開発に携わりたい方

 

Pytorchの使い方やインストールの方法は、こちらの記事で紹介しているため、よかったら参考にしてください。

PyTorchとは?概要と導入方法をチェックしよう!
更新日 : 2019年4月5日

Pythonの用途別おすすめフレームワーク

Pythonのフレームワークは大きく2つの用途で分けることができます。

  • Webアプリケーション向け

  • 機械学習向け

 

これまで紹介した7つのフレームワークを用途別に簡単にまとめると、以下の表のようになります。

Webアプリ開発向け 機械学習向け
Django
Bottle
Flask
Tornado
web2py
Tensorflow
Pytorch

用途ごとに詳しく解説します。

Webアプリ

Webアプリケーションの開発に向くフレームワークは次の5つです。

  • Django

  • Bottle

  • Flask

  • Tornado

  • web2py

 

Webアプリケーション開発でよく使用されるユーザー認証や管理画面等の機能があらかじめ用意されていたり、フレームワークを使うことで開発が簡単にできるようになります。

また、フレームワークによってはセキュリティ面でも信頼できる設計が施されていて、開発途中で脆弱性を発生させない仕組みがあったりします。PythonでWebアプリケーションを開発するなら、ぜひ使いたいフレームワークばかりです。

機械学習

機械学習の開発に向くフレームワークは次の3つです。

  • Django

  • Tensorfloow

  • Pytorch

 

どれも機械学習で必要となるニューラルネットワークの関数や高次元配列計算が豊富。機械学習には欠かせないフレームワークとなっていて、世界中の企業や研究者が利用しています。

機械学習のフレームワークは紹介した3つ以外にもあります。気になる方はこちらの記事を参照ください。

Tensorflowだけじゃない?ディープラーニングフレームワーク8選!
更新日 : 2020年3月3日

Pythonのフレームワーク選びに迷ったときは

画像:Pythonのフレームワーク選びに迷っている男性

世界的に人気があり、日本でも様々な企業で利用しているDjangoを使うのをオススメします。フレームワークとしてのしっかりした考え方を身につけることができるため、Djangoさえ使えればほとんどのサービスが構築できるでしょう。

ただし、プログラミングをこれから学ぼうという方にとってフレームワークは少し難易度が高いかもしれません。特にPythonはフレームワークの種類が多いため、初学者は目的にあったフレームワークを見つけるのが大変です。

そんなこと言われてもなかなか決められないよ……。

という方は一度プロに相談してみるのはいかがでしょうか?

弊社の無料体験レッスンでは、専属コンサルタントがあなたの悩みを解決するための手助けをさせていただきます。

下記のカレンダーから、お好きな日程を選んでいただけると簡単に予約できます。オンラインでの受講も可能なのでお気軽にご活用下さい。あなたにお会いできるのを楽しみにお待ちしております。

「無料体験レッスンの詳細はこちら」

まとめ

今回はPythonのフレームワークについて紹介してきました。

Webアプリケーションや機械学習の開発で使われるPythonには、多くのフレームワークがあります。鉄板のものから人気上昇中のものまで様々でしたね。

フレームワークによって得意不得意があるので、目的に合わせて選ぶことが大切です。

鉄板のフレームワークなら、利用者が多く情報も豊富にあるので、初心者の方でも学びやすくなります。紹介したフレームワークを活用しながら、Pythonでいろいろなものを作ってみましょう。

最後まで挫折しないマンツーマンレッスン

侍エンジニア

挫折の多いと言われるプログラミングの習得においては、一人ひとりに合ったレッスンで自分のペースで学んでいくことが何よりも大事であり、「侍エンジニア」ではプロのエンジニアが専属マンツーマン指導。だからこそやり遂げることができます。

「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。

無料体験レッスンはこちら

書いた人

侍エンジニア編集部

侍エンジニアは「人生を変えるプログラミング学習」をコンセンプトに、過去多くのフリーランスエンジニアを輩出したプログラミングスクールです。プログラミングに役立つ情報や有用な情報を発信していきます。
サービスページはこちら
ツイッターはこちら
フェイスブックはこちら

おすすめコンテンツ

まずはここから!初心者でも1から学べるプログラミング入門カリキュラム

転職成功で受講料0円!あなたもプログラミングを学んでエンジニアデビュー