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

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

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

PythonはAI(人工知能)開発で、注目を集めている近年人気のプログラミング言語です。同時にたくさんのフレームワークも登場しています。しかし、数が多すぎるゆえに、開発時どのフレームワークを使ったらよいのか、またどのフレームワークを学習したらよいのか悩ましいですよね。

そこで、今回はPythonのおすすめフレームワークを目的別の選び方も交えて紹介します。この記事を読めば、目的や用途にあうフレームワークが見つかりますよ。

この記事の要約
  • 汎用性の高さで選ぶなら「Django」がおすすめ
  • 導入の手軽さで選ぶなら「Bottle」がおすすめ
  • 使いやすさで選ぶなら「Flask」がおすすめ

なお、1人で学習が進められるか、途中で挫折しないか不安な人は「侍エンジニア」をお試しください。

侍エンジニアでは現役エンジニアと学習コーチの2名体制で学習をサポートするため、挫折しづらい環境で学習が進められます。

受講料が最大70%OFFになる「給付金コース」も提供中。未経験から効率よく学習を進めたい人は、ぜひ一度お試しください。

\ オンラインで相談可能 /

本記事を読む前に、そもそもPythonとはどんなプログラミング言語なのか、その特徴をおさらいしておきたい人は次の記事を参考にしてください。

→ Pythonとは?特徴やできること、活用例をわかりやすく簡単に解説

また、下の記事ではPythonを使ったWebアプリの開発手順を、開発例やPythonを活用するメリットも交えて紹介しているので良ければ参考にしてください。

PythonでWebアプリ開発!手順からサービス例、メリットも紹介

本記事の解説内容に関する補足事項

本記事はプログラミングやWebデザインなど、100種類以上の教材を制作・提供する「侍テラコヤ」、4万5,000名以上の累計指導実績を持つプログラミングスクール「侍エンジニア」、を運営する株式会社SAMURAIが制作しています。

また、当メディア「侍エンジニアブログ」を運営する株式会社SAMURAIは「DX認定取得事業者」に選定されており、プログラミングを中心としたITに関する正確な情報提供に努めております。

記事制作の詳しい流れは「SAMURAI ENGINEER Blogのコンテンツ制作フロー」をご確認ください。

目次

Pythonのフレームワークとは

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

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

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

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

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

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

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界での世界シェア

【Python入門】Djangoとは?基礎知識 + 使い方を解説!
更新日:2024年3月1日

Djangoの仕事

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

Forkwell Scout

引用元:Forkwell Scout

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

こんな人におすすめ

  •  

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

  •  

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

  •  

    初心者の方

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

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

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

Bottle

引用元:Bottle

Bottleとは?

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

おすすめ理由

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

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

Bottleの仕事

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

こんな人におすすめ

  •  

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

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

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

軽量で利用しやすい「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の基本をマスター
更新日:2024年4月10日

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

Tornade

引用元:Tornade

Tornadoとは?

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

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

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

おすすめの理由

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

Tornadoの仕事

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

こんな人におすすめ

  •  

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

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

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

フルスタック開発ができる「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を学ぼう
更新日:2024年3月29日

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

Pytorch

引用元:Pytorch

Pytorchとは?

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

人気上昇中の理由

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

Pytorchの仕事

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

Forkwell

引用元:Forkwell

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

こんな人におすすめ

  •  

    Numpyを使ったことがある方

  •  

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

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

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

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つ以外にもあります。気になる方はこちらの記事を参照ください。

現役エンジニアがよく使う!Python機械学習ライブラリ厳選9選
更新日:2024年3月29日

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

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

ただし、これからプログラミングを学ぶ未経験の方がフレームワークの習得を目指すのは難易度が高いかもしれません。実のところ、Pythonやフレームワークといったプログラミング学習の途中で挫折する独学者は多くいます。

事実、弊社の調査では

  • 独学では不安がある
  • 効率よく学べそう
  • 確実にスキルを身につけられると思ったから

などの理由から、87.5%が「プログラミング学習で挫折や行き詰まりを感じた」と回答しています。

プログラミング学習における挫折率の調査
プログラミング学習者の87.5%が挫折を経験したことがある
不明点やエラーが解決できずプログラミングを挫折した人が多数

調査概要:プログラミング学習の挫折に関するアンケート
調査対象:10代〜80代の男女298名
調査期間:2019年8月13日~8月20日
調査方法:インターネット調査
掲載元:PR TIMES

またこうした背景もあってか、弊社がプログラミングに興味がある人100名へ実施した別の調査では

  • 不明点を聞ける環境になかった
  • エラーが解決できなかった
  • モチベーションが続かなかった

などの理由から、61%が「プログラミングの勉強を始めるならスクールを選ぶ」と回答しています。

61%の人がプログラミングの勉強を始めるならスクールが良いと回答
確実にスキルを身につけられそうという理由でプログラミングスクールを選ぶ人が多い

調査概要:プログラミングに興味がある方の意識調査
調査期間:2021/11/19~2021/12/3
対象者:プログラミング学習を検討している10代~50代の男女100名
調査媒体:クラウドワークス
掲載元:PR TIMES

加えて、プログラミングスクールの卒業生に「独学ではなくスクールを活用した理由」を聞いたところ「できるだけ短い期間でITエンジニアへの転職や副業に必要なスキルを身につけたかった」という回答も多く寄せられました。

上記から、1人でプログラミングスキルを習得できるか不安な人や短期間でスキルを習得したい人ほど確実性を求め、現役エンジニアといったプロの講師に質問できるプログラミングスクールを利用する傾向にあるのがわかります。

いざ独学でプログラミングを学び始めても、勉強の最中に挫折しまっては学習にかけた時間を悔やむだけでなく「プログラミングスキルを身につけるのって思っていたよりも難しいんだな…」とスキルの習得自体を諦めかねません。

仮にわからないことを飛ばしながら勉強を進めたとしても、ITエンジニアへの転職や副業での収入獲得を実現できる実践的なスキルが身につかなければ、結局後悔することになります。

そこで、おすすめしたいのが「SAMURAI ENGINEER(侍エンジニア)」です。

300x300-samuraiengineer (1)
6
700x700_01 (1)
700x700_02
700x700_03
700x700_04
700x700_05
700x700_06
700x700_07
700x700_08
300x300-samuraiengineer (1)
6
700x700_01 (1)
700x700_02
700x700_03
700x700_04
700x700_05
700x700_06
700x700_07
700x700_08
previous arrow
next arrow
料金月分割4.098円~
実績・累計指導実績4万5,000名以上
・受講生の学習完了率98%
・受講生の転職成功率99%
・転職成功後の平均年収65万円UP
・転職成功後の離職率3%

侍エンジニアをおすすめする最大の理由は「挫折しづらい学習環境」にあります。

先ほど述べたとおり、独学者の多くは自力で不明点やエラーを解決できないためにプログラミング学習を挫折しています。そのため、未経験者が現役エンジニアのようなプロに質問や相談できない状況で、プログラミングスキルを習得するのは非常に難易度が高いといえます。

しかし、侍エンジニアでは

  • 現役エンジニア講師によるマンツーマンレッスン
  • 現役エンジニアに質問できるオンラインでのQ&Aサービス

といったサポート体制を整えているため、学習中に出てきたわからないことや不明点をいつでも相談可能です。「受講生の学習完了率98%「転職成功率99%」という実績からも、侍エンジニアなら挫折しづらい環境でプログラミング学習を進められるといえます。

また、侍エンジニアではカウンセリングにて受講生一人ひとりの目的をヒアリングしたうえでカリキュラムを作成するため、限られた受講期間でもITエンジニアへの転職や副業での収入獲得に必要なスキルだけを効率的に習得可能です。

最短距離で目的を実現できるようカリキュラムが組まれているため、勉強する順番や内容を誤り非効率に時間や手間を費やす心配もありません。

なお、ITエンジニアへの転職を見据えPythonを学びたい人は受講料の最大70%が給付される「Webエンジニア転職保証コース」や「AIアプリコース」がおすすめです。金銭面での支援を受けつつ、Pythonの習得から転職活動・就業後のフォローアップ(※1)までを一貫してサポートしてもらえます。

※1:転職後の1年間、転職先での継続的な就業や転職に伴う賃金上昇などのフォローアップ

学習と金銭面をどちらもサポートしてくれる侍エンジニアなら、未経験からでも安心してPythonを習得できますよ。

公式サイトで詳細を見る

まとめ

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

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

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

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

この記事を書いた人

【プロフィール】
DX認定取得事業者に選定されている株式会社SAMURAIのマーケティング・コミュニケーション部が運営。「質の高いIT教育を、すべての人に」をミッションに、IT・プログラミングを学び始めた初学者の方に向け記事を執筆。
累計指導者数4万5,000名以上のプログラミングスクール「侍エンジニア」、累計登録者数1万8,000人以上のオンライン学習サービス「侍テラコヤ」で扱う教材開発のノウハウ、2013年の創業から運営で得た知見に基づき、記事の執筆だけでなく編集・監修も担当しています。
【専門分野】
IT/Web開発/AI・ロボット開発/インフラ開発/ゲーム開発/AI/Webデザイン

目次