この記事では、おすすめも交え、Pythonのフレームワークを紹介します。
Pythonのフレームワークはどんな種類があるの?
Pythonのおすすめのフレームワークが知りたい
など、Pythonのフレームワークについて疑問をもっていませんか?
PythonはAI(人工知能)開発で、注目を集めている近年人気のプログラミング言語です。同時にたくさんのフレームワークも登場しています。しかし、数が多すぎるゆえに、開発時どのフレームワークを使ったらよいのか、またどのフレームワークを学習したらよいのか悩ましいですよね。
そこで、今回はPythonのおすすめフレームワークを目的別の選び方も交えて紹介します。この記事を読めば、目的や用途にあうフレームワークが見つかりますよ。
本記事を読む前に、そもそもPythonとはどんなプログラミング言語なのか、その特徴をおさらいしておきたい人は次の記事を参考にしてください。
→ Pythonとは?特徴やできること、活用例をわかりやすく簡単に解説
また、下の記事ではPythonを使ったWebアプリの開発手順を、開発例やPythonを活用するメリットも交えて紹介しているので良ければ参考にしてください。
- 汎用性の高さで選ぶなら「Django」がおすすめ
- 導入の手軽さで選ぶなら「Bottle」がおすすめ
- 使いやすさで選ぶなら「Flask」がおすすめ
Pythonのフレームワークとは
フレームワークとは、システム開発を効率化できるように、よく使う基本的な機能をまとめて提供してくれるもの。自分でプログラミングを全て行う場合、莫大な量のソースコードを記述する必要があり、アプリ開発をする際にとても時間がかかってしまいます。
しかし、フレームワークを使用することによって、開発業務を大幅に短縮できます。
また、フレームワークはどこに何をかくのかある程度ルールが決まっているため、プログラムの書き方を統一しやすく、他の人が作ったソースコードも読みやすいのも大きなメリットです。
そのため最近では、アプリ開発に必要なものをまとめて提供しているフレームワークを使って開発を行うのがスタンダードとなっています。
ちなみにフレームワークについては、以下の動画でも詳しく解説していますので、ぜひ参考にしてくださいね。
https://youtu.be/ZPSQJSkomuY
Pythonで使えるフレームワーク3つ
Pythonで利用できるフレームワークには、3つのタイプがあります。
- フルスタックフレームワーク(Full-Stack Framework)
- マイクロフレームワーク(Microframework)
- 非同期フレームワーク(Asynchronous Framework)
それぞれのフレームワークについて解説していきます。
フルスタックフレームワーク
Web開発に必要なものがまとまっているフレームワークです。
データベースからのデータ取得処理、ログイン認証、各種フォームの作成など、Web開発に必要な機能がすべて揃っているフレームワークです。そのため小規模な開発だけでなく、大規模な開発にも使えて汎用性が高いのが特徴です。
機能が豊富な反面、覚えることが多く、学習コストが高くなりやすいです。
- Django
- web2py
- Pylons
- CubicWeb
マイクロフレームワーク
必要最低限の機能がまとめられているフレームワークです。
フルスタックフレームワークと比べると、機能が少なく軽量です。そしてシンプルなので自由度が高いという特徴があります。必要最低限の機能でシンプルな設計になっているため、覚えることが少なく初心者でも理解しやすいです。
マイクロフレームワークは、小規模な開発に向いています。
- Flask
- Bottle
- CherryPys
- Dash
非同期フレームワーク
同時に複数接続処理が可能なフレームワークです。
非同期通信ができるため、データの送信者と受信者でタイミングを合わせないで処理できるのが特徴。レスポンスが早く効率的に作業できるので、人気があります。
- Tornad
- Sanic
- Growler
- Aiohttp
なお、IT企業への転職や副業での収入獲得を見据え、独学でPythonを習得できるか不安な人は「侍エンジニア」をお試しください。
侍エンジニアでは、現役エンジニアと学習コーチの2名体制で学習をサポートしてもらえます。
「受講生の学習完了率98%」「累計受講者数4万5,000名以上」という実績からも、侍エンジニアなら未経験からでも挫折なく転職や副業収入の獲得が実現できますよ。
Pythonの鉄板フレームワークおすすめ5選
ここからはPythonのフレームワークについて紹介していきます。まずは鉄板フレームワークでおすすめの5つです。
- Django
- Bottle
- Flask
- Tornado
- web2Py
それぞれのフレームワークについて解説していきますね。
さまざまな開発で使える「Django」
Djangoとは?
公式サイトのフレームワーク紹介には次のように書かれています。
DjangoはハイレベルなPythonのWebフレームワークです。実用的に作られた素早く精錬された開発環境を提供します。ひとことで言うと、Djangoは多機能な万能型WEBフレームワークです。
言い換えると、さまざまな用途で使えるフレームワークということです。定番のフレームワークであり情報も多いため、初心者に一番おすすめです。
Djangoで開発されたサービスに「Instagram」や「Pinterest」があります。Python界での世界シェアNo.2なので、今後も広く使い続けられます。
Djangoの仕事
例えばForkwellには次のような案件があります。
Djangoを用いて新しい技術も積極採用しているチームのようです。音楽SNSサービスのAPI開発や設計等を担当していただくと記載があります。1500万までという年収も魅力的ですね。
こんな人におすすめ
- Pythonエンジニアとして仕事したい方
- Pythonで色々な物を作りたい方
- 初心者の方
Djangoのメリットやデメリット、できることなどに関してこちらの記事で詳しく解説しています。興味がある方は参考にしてください。
なお、IT企業への転職や副業での収入獲得を見据え、独学でPythonを習得できるか不安な人は「侍エンジニア」をお試しください。
侍エンジニアでは、現役エンジニアと学習コーチの2名体制で学習をサポートしてもらえます。
「受講生の学習完了率98%」「累計受講者数4万5,000名以上」という実績からも、侍エンジニアなら未経験からでも挫折なく転職や副業収入の獲得が実現できますよ。
1ファイルで導入できる「Bottle」
Bottleとは?
1ファイルで導入できる「超お手軽」なフレームワーク。フレームワークの導入もお手軽に行えます。ひとことで言うと「シンプルイズベスト」なフレームワークです。
おすすめ理由
まだまだ知名度こそ低いものの、地味に人気を集めてきています。比較的新しい技術で、軽量なフレームワークのためアクセス速度もある程度担保でき、要件によって本格的なアプリ開発に利用することもあります。
初学者がWEBフレームワーク入門として利用するにもおすすめです。
Bottleの仕事
日本でBottleのフレームワークを利用するという求人はほとんどありません。現在はあくまで学習用、または自分のWEBサービス用として利用することになるでしょう。
こんな人におすすめ
- まずはPythonでフレームワークに触れてみたい方
「Bottleについてもっと詳しく知りたい」という方はこちらの記事をご覧ください。
軽量で利用しやすい「Flask」
Flaskとは?
公式サイトのフレームワーク紹介には次のように書かれています。
フラスクはパイソンの小規模なフレームワークで、Jinja2というツールとWerkzeug(ヴェルクツォイク:ドイツ語でツールという意味)というプログラミングに使用するキットを用います。
Djangoに近い考え方ですが、面倒な部分を省いて軽量化させたようなフレームワークです。
Flaskで簡単に構築できる機能には以下があります。
- ユーザー認証
- 管理画面
- サイトの案内ぺージ
- RSSフィード
おすすめ理由
トレンド比較時に覧ていただいた通り、人気が上がってきているフレームワークです。比較的軽量で利用しやすく、これから更にシェアの伸びが期待できます。
Flaskの仕事
例えばForkwellという採用技術の詳細が分かる求人サービスでは、次のような仕事が募集されています。
自社で開発・運営しているWebサービスのサーバサイドの設計や実装をお任せするそう。こちらでは年収1000万円くらいまで目指せます。
機械学習やAIに強いならフルリモートで、年収1000万円を狙える求人もありました。
こんな人におすすめ
- Pythonエンジニアや機械学習エンジニアを検討している方
Flaskの基本や、インストールの方法などの使い方に関してはこちらの記事を参考にしてください。
非同期で処理が早い「Tornado」
Tornadoとは?
Tornadoの公式サイトによると、次のように書かれています。
ノンブロッキングネットワークI / Oを使用することで、Tornadoは数万のオープン接続に拡張でき、ロングポーリング、WebSocket、および各ユーザーへの長時間の接続が必要なその他のアプリケーションに最適です。
TornadoはPythonの非同期フレームワークでライブラリでもあります。
おすすめの理由
非同期フレームワークのため、シンプルで処理スピードが早いのが特徴です。他のフレームワークに比べると知名度は低いですが、使い勝手がいいので、興味があるなら勉強してみるのもいいでしょう。
Tornadoの仕事
日本でTornadoのフレームワークを利用するという求人はほとんどありません。現在はあくまで学習用、または自分のWEBサービス用として利用することになるでしょう。
こんな人におすすめ
- とにかく非同期フレームワークを使ってみたい
Tornadoの使い方やインストールの方法は、こちらの記事で紹介しているため、よかったら参考にしてください。
フルスタック開発ができる「web2py」
web2pyとは?
web2pyは、アジャイルで開発するためのフルスタックフレームワークです。Windows、Mac、Linuxいずれにも対応したフレームワークで、セキュリティにも重点が置かれています。
web2pyにはデータベースやWebサーバ、APIライブラリーが含まれていて、web2py内で開発を完結できます。また、SQLインジェクションやクロスサイトスクリプトといった脆弱性の問題を未然に防ぐ仕組みがあり開発しやすいです。
また、データベース・Webサーバなど、必要な機能はすべてweb2pyが提供しています。そのため、開発をフレームワーク内で完結することが可能です。
web2pyの仕事
日本でweb2pyのフレームワークを利用するという求人はほとんどありません。現在はあくまで学習用、または自分のWEBサービス用として利用することになるでしょう。
こんな人におすすめ
- フレームワーク初学者の方
- PythonでWebアプリケーションの開発をしたい方
Pythonの人気上昇中のフレームワーク2選
続いては人気上昇中のフレームワークを2つ紹介します。
- Tensorflow
- Pytorch
それぞれのフレームワークについて解説しますね。
Googleが開発した機械学習向けの「Tensorflow」
Tensorflowとは?
Tensorflowとは、Google社が開発しているフレームワーク。機械学習向けに開発されました。世界的に見ると最もシェアがあるフレームワークと言われており、Googleはもちろんのこと、Intelやツイッター社など多くの企業で採用されています。
人気上昇中の理由
機械学習向けに開発されたフレームワークであること、オープンソースで提供されていることが人気上昇中の理由です。また、Python以外の言語でも使えることも理由の1つとしてあげられます。
その他、Tensorflowの利用者が集まるコミュニティの大きさに比例して、情報量が多いことも人気の理由です。
Tensorflowの仕事
例えばForkwellには次のような案件があります。
AI×SaaSの自社プロダクトを3つ展開しているようです。AIの開発に携わりたい人に合いそうですね。
こんな人におすすめ
- 機械学習や深層学習を学びたい方
- AIの開発に携わりたい人
Tensorflowの使い方やインストールの方法はこちらの記事で紹介しているため、よかったら参考にしてください。
Facebookが開発した深層学習向けの「Pytorch」
Pytorchとは?
Pytorchは、Facebookが開発を主導した深層学習向けのフレームワークです。フレームワークの中では比較的新しく、2016年後半に発表されました。
人気上昇中の理由
Pytorchが人気の理由は、機械学習でよく使われるライブラリ「Numpy」と操作方法が似ていること。そのため、普段使っているNumpyと同じような感覚でPyTorchを使うことができます。
Pytorchの仕事
Pytorchを扱う仕事には次のようなものがあります。
自然言語処理・機械学習に関わる研究開発を担当できるそうです。
こんな人におすすめ
- Numpyを使ったことがある方
- 機械学習の開発に携わりたい方
Pytorchの使い方やインストールの方法は、こちらの記事で紹介しているため、よかったら参考にしてください。
Pythonの用途別おすすめフレームワーク
Pythonのフレームワークは大きく2つの用途で分けることができます。
- Webアプリケーション向け
- 機械学習向け
これまで紹介した7つのフレームワークを用途別に簡単にまとめると、以下の表のようになります。
用途ごとに詳しく解説します。
Webアプリ
Webアプリケーションの開発に向くフレームワークは次の5つです。
- Django
- Bottle
- Flask
- Tornado
- web2py
Webアプリケーション開発でよく使用されるユーザー認証や管理画面等の機能があらかじめ用意されていたり、フレームワークを使うことで開発が簡単にできるようになります。
また、フレームワークによってはセキュリティ面でも信頼できる設計が施されていて、開発途中で脆弱性を発生させない仕組みがあったりします。PythonでWebアプリケーションを開発するなら、ぜひ使いたいフレームワークばかりです。
機械学習
機械学習の開発に向くフレームワークは次の3つです。
- Django
- Tensorfloow
- Pytorch
どれも機械学習で必要となるニューラルネットワークの関数や高次元配列計算が豊富。機械学習には欠かせないフレームワークとなっていて、世界中の企業や研究者が利用しています。
機械学習のフレームワークは紹介した3つ以外にもあります。気になる方はこちらの記事を参照ください。
Pythonのフレームワーク選びに迷ったときは
世界的に人気があり、日本でも様々な企業で利用しているDjangoを使うのをオススメします。フレームワークとしてのしっかりした考え方を身につけることができるため、Djangoさえ使えればほとんどのサービスが構築できるでしょう。
ただし、これからプログラミングを学ぶ未経験の方がフレームワークの習得を目指すのは難易度が高いかもしれません。実のところ、Pythonやフレームワークといったプログラミング学習の途中で挫折する独学者は多くいます。
事実、弊社の調査では
- 独学では不安がある
- 効率よく学べそう
- 確実にスキルを身につけられると思ったから
などの理由から、87.5%が「プログラミング学習で挫折や行き詰まりを感じた」と回答しています。
またこうした背景もあってか、弊社がプログラミングに興味がある人100名へ実施した別の調査では
- 不明点を聞ける環境になかった
- エラーが解決できなかった
- モチベーションが続かなかった
などの理由から、61%が「プログラミングの勉強を始めるならスクールを選ぶ」と回答しています。
加えて、プログラミングスクールの卒業生に「独学ではなくスクールを活用した理由」を聞いたところ「できるだけ短い期間でITエンジニアへの転職や副業に必要なスキルを身につけたかった」という回答も多く寄せられました。
上記から、1人でプログラミングスキルを習得できるか不安な人や短期間でスキルを習得したい人ほど確実性を求め、現役エンジニアといったプロの講師に質問できるプログラミングスクールを利用する傾向にあるのがわかります。
いざ独学でプログラミングを学び始めても、勉強の最中に挫折しまっては学習にかけた時間を悔やむだけでなく「プログラミングスキルを身につけるのって思っていたよりも難しいんだな…」とスキルの習得自体を諦めかねません。
仮にわからないことを飛ばしながら勉強を進めたとしても、ITエンジニアへの転職や副業での収入獲得を実現できる実践的なスキルが身につかなければ、結局後悔することになります。
そこで、おすすめしたいのが「SAMURAI ENGINEER(侍エンジニア)」です。
料金 | 月分割4.098円~ |
実績 | ・累計指導実績4万5,000名以上 ・受講生の学習完了率98% ・受講生の転職成功率99% ・転職成功後の平均年収65万円UP ・転職成功後の離職率3% |
侍エンジニアをおすすめする最大の理由は「挫折しづらい学習環境」にあります。
先ほど述べたとおり、独学者の多くは自力で不明点やエラーを解決できないためにプログラミング学習を挫折しています。そのため、未経験者が現役エンジニアのようなプロに質問や相談できない状況で、プログラミングスキルを習得するのは非常に難易度が高いといえます。
しかし、侍エンジニアでは
- 現役エンジニア講師によるマンツーマンレッスン
- 現役エンジニアに質問できるオンラインでのQ&Aサービス
といったサポート体制を整えているため、学習中に出てきたわからないことや不明点をいつでも相談可能です。「受講生の学習完了率98%」「転職成功率99%」という実績からも、侍エンジニアなら挫折しづらい環境でプログラミング学習を進められるといえます。
また、侍エンジニアではカウンセリングにて受講生一人ひとりの目的をヒアリングしたうえでカリキュラムを作成するため、限られた受講期間でもITエンジニアへの転職や副業での収入獲得に必要なスキルだけを効率的に習得可能です。
最短距離で目的を実現できるようカリキュラムが組まれているため、勉強する順番や内容を誤り非効率に時間や手間を費やす心配もありません。
なお、ITエンジニアへの転職を見据えPythonを学びたい人は受講料の最大70%が給付される「Webエンジニア転職保証コース」や「AIアプリコース」がおすすめです。金銭面での支援を受けつつ、Pythonの習得から転職活動・就業後のフォローアップ(※1)までを一貫してサポートしてもらえます。
学習と金銭面をどちらもサポートしてくれる侍エンジニアなら、未経験からでも安心してPythonを習得できますよ。
公式サイトで詳細を見るまとめ
今回はPythonのフレームワークについて紹介してきました。
Webアプリケーションや機械学習の開発で使われるPythonには、多くのフレームワークがあります。鉄板のものから人気上昇中のものまで様々でしたね。
フレームワークによって得意不得意があるので、目的に合わせて選ぶことが大切です。
鉄板のフレームワークなら、利用者が多く情報も豊富にあるので、初心者の方でも学びやすくなります。紹介したフレームワークを活用しながら、Pythonでいろいろなものを作ってみましょう。
本記事の解説内容に関する補足事項
本記事はプログラミングやWebデザインなど、100種類以上の教材を制作・提供する「侍テラコヤ」、4万5,000名以上の累計指導実績を持つプログラミングスクール「侍エンジニア」を運営する株式会社SAMURAIが制作しています。
また、当メディア「侍エンジニアブログ」を運営する株式会社SAMURAIは「DX認定取得事業者」に、提供コースは「教育訓練給付制度の指定講座」に選定されており、プログラミングを中心としたITに関する正確な情報提供に努めております。
記事制作の詳しい流れは「SAMURAI ENGINEER Blogのコンテンツ制作フロー」をご確認ください。
この記事の監修者
株式会社SAMURAI
独学でプログラミング学習を始めるも挫折。プログラミングスクール「SAMURAI ENGINEER」を受講し、Web制作を学ぶ。副業でWeb制作を行いつつ、「初心者がプログラミングで挫折しないためのコンテンツ制作」をモットーにWebライターとして侍エンジニアブログ編集部に従事。