「Python」でWebサービスを開発したい人は、Webフレームワークを活用して開発する事が多いと思います。この記事では、PythonのWebフレームワークとして有名な「Django」、「Flask」等を取り上げ、特徴について比較していきます。「Tornade」公式チュートリアル【Django】と【Flask】の比較まずは、「Django」と「Flask」の比較をまとめてみましょう。Frameworkとは?Webフレームワークとは、Webアプリケーションの開発を効率化するための機能が詰まったツールの事です。フレームワークとは、「枠組み」や「骨組み」という意味です。Webアプリケーションは、「ユーザー管理機能」、「ログイン機能」といった、よく使われる機能があります。これを、毎回1からコードを書くのは大変です。フレームワークを使用する事で、大変な作業をスキップする事が出来ます。「起承転結」や「5−7−5」などは、フレームワークの一種です。文章の流れを決めてしまう事で、内容やリズムといった他の事に集中出来ます。乱暴ですが、フレームワーク=「炊飯器」と考えてみても良いです。RailsやDjango)もあれば、ただ炊けるだけで良い最低限の機種(FlaskやExpress)があります。「ちょっとお焦げが食べたいんだけど」と言われた際に、どうカスタマイズしていいか分からず右往左往する人も多いので、慣れるに従って、作動原理を理解していきましょう。Control)です。「ハリウッドの原則」って面白い例えもありますが、もう少し詳しく知りたいぞ!って人は、以下の記事も覗いていって下さい。フレームワークとライブラリって何が違うの?【Django】大規模な開発に最適PythonのWebフレームワークの中でもっとも人気なのが「Django」。「ジャンゴ」と読みます。Online」が開発したWebフレームワークで、基本的なWebの機能である、「ユーザー認証」、「サイトマップ」、「RSSフィード」などの機能を備えています。大規模な開発を行うのであれば、「Django」を使うのがおすすめです。必要な機能が一通り揃っている「Django」は、Web開発に必要な機能が一通り揃っており、基本はDjangoだけで完結します。これを、「フルスタック・フレームワーク」と呼びます。Webフレームワークでよく使用される「URLディスパッチャー」「O/Rマッパー」「テンプレートエンジン」などの機能が備わっています。View)」という考え方をとっています。Controller)」と何が違うの?と思った方は公式サイトFAQや以下の記事を参考にして下さい。管理サイトだけで、データ投入、データ検証が出来ます。Rails」で開発した事がある人は、この便利さに驚くと思います。プロトタイプの作成で、生産コストが劇的に下がります。「SQLインジェクション」や「クロスサイトスクリプティング」などの基本的な脆弱性について考慮されており、セキュリティー面も配慮されています。アプリケーション」を作成します。基本的なUnixコマンドの仕組みや、Webサイトの仕組み、Herokuへのデプロイ等について知らない場合、公式チュートリアルは少々難しいかもしれません。Girls」から進めるのがオススメです。Girls」とありますが、女性に限らず、アプリケーションを初めて作る全ての人におすすめのチュートリアルです。ステップバイステップで学べる様に、Djangoは元より、インターネットの仕組み等から丁寧に解説されています。有志の方によって日本語に翻訳されているので、英語が苦手な人も安心です。Girls」というコミュニティーがあります。Railsを始めたばかりの初心者の方にはこちらもオススメです。「Python」初心者に最もオススメなUdemyの講座です。動画の時間は約15時間程度で、文字列やリスト、辞書の操作といった「Python」の基本から、「Django」の開発まで段階的にステップアップしていきます自分は、この講座でDjangoを最初に学びました。講師の滝澤さんは最初の言語は「Python」と「Ruby」の2択で迷ったそうですが、Pythonの方が構文が美しいと感じたのが最終的な決定打になったそうです。BlogにはDjango絡みの役に立つ情報が書かれているので、Udemyの講座が終わった後に併せて読む事をオススメします。【Flask】シンプル・軽量で初心者にオススメ「Flask」はマイクロフレームワークと呼ばれており、必要最低限の機能を備え、それ以外は拡張機能で補う事で開発するフレームワークです。小規模・中規模なWebアプリケーションの構築に向いています。2010年に生まれた「Django」より新しいフレームワークで、「Flask」(フラスコ)という名前は、「Bottle」(ボトル)に対する言葉遊びで命名されました。必要最低限のコア機能に、拡張機能を組み合わせて作成していくのが「Flask」の設計思想です。モジュール程度であり、初心者にも分かりやすいです。Mapping)、キャッシュ、認証などは後から機能を「追加」する必要があります。ログイン処理を入れたい場合は、Flask-Loginを入れるといった具合です。Girls」はありません。」では、「Flask」を活用してWebサイトを作成していきます。Blog」が出来上がります。Webアプリ作成に必要な知識が全部盛り「Flask」だけでなく、「HTML/CSS」、「Bootstrap4」、「Jinjaテンプレート」、「SQL」との連携など、全126レクチャー、約20時間の大ボリュームの講座です。HTML/CSSの基礎を「Progate」で学んだ次にやるのがオススメです。BootcampDjangoとFlaskをWebサービスで学習したい人DjangoとFlaskをPythonの基礎からプロレベルまで学びたい人は、「PyQTM(パイキュー)」もオススメです。PyQはProgateと同じく、ブラウザ上でコードを実行して学習する事が出来、Progateより格段ハイレベルな内容まで扱っています。自分もPython初心者の頃は、業務に1日も早く必要だったため、なりふり構わず、プログラミングスクールにPyQ、Courseraのスタンフォード大学講座を同時受講して集中学習した事があります。PyQは実際に手を動かす事前提のサービスなので、あやふやな理解を定着させるのに非常に助けになりました。(やっぱり理解を深めるには、コードを書いてエラーと格闘するのが一番です)ライトプランで月2,980円のサブスクリプション型の課金なので、極力集中して短期間で一気に学習を進めましょう。独学でWebエンジニアを目指したい人は、以下の記事を参考にして下さい。実は、DjangoやFlaskを学ぶ事が出来るプログラミングスクールは多くありません。超実践型プログラミングスクール【.pro】は渋谷に教室を持つ、少数精鋭型のプログラミングスクールです。面白いのが、毎週土曜日に4時間の「プログラミング特訓」を行うという珍しい受講形態。基本的にプログラミングは独学でも全然OKです。自分で学習を習慣化しにくい人は挫折してしまうという所がどうしてもネックです。いった強制的にアウトプットをさせる仕組みを作る形でプログラミングスクールを受講するのは全然有りだと思います。(ただ、コスパは悪いですよ)6ヶ月間エンジニアからフィードバックを貰いながらアウトプットを続ける事が出来れば間違いなく実力がつきます。(この記事を読んでいる人はリテラシーが高い人だと思うので大丈夫だと思いますが、数週間でプロになれるとか絶対にダメですからね!)他にも、自分で直接メンターを付けるMENTAというサービスもあります。学習サイトについては、こちらを参考にして下さい。【Python独学】初心者から上級者までレベル別のオススメ学習サイト英語が苦手なら「Django」がオススメ「Flask」の方がシンプルで簡単ですが、日本語でのドキュメントや解説は圧倒的に「Django」の方が豊富です。日本語でまず学びたい人は、「Django」を選択するという選択肢もあります。「Django」を日本語で学ぶなら、以下の書籍がオススメです。現場で使えるDjangoの教科書(基礎編)現場で使えるDjangoの教科書(実践編)Pythonプロフェッショナルプログラミングタイミングとしては、チュートリアルをやりながら「現場で使えるDjangoの教科書(基礎編)」を読み、チュートリアルが終わった段階で「現場で使えるDjangoの教科書(実践編)」に進むのが良いです。プロフェッショナルプログラミングは、Django特化というよりは、Pythonのパッケージ作成、バージョン管理システム、ドキュメントの書き方、テスト、CI、デプロイと実務をする上で必要な幅広い話題を扱っている本です。そんなの当たり前という人は特段読む必要はありません。「Django」と「Flask」が人気エンジニア向けのQ&Aサイトの「Stackoverflow」の質問数の推移を見てみましょう。PythonのWebフレームワークでは「Django」の質問数が一番多く、次に「Flask」が続きます「Django」と「Flask」の求人は?PythonでWeb開発の仕事を考えるのであれば、「Django」をオススメします。WANTEDLYの求人を見てみましょう。「Django」が250件に対して「Flask」は98件と、求人数は「Django」が多いです。Rails」が人気か良く分かりますね。Webサービス開発のトレンドを知っておく事も大切ここまで読んでも、「Django」か「Flask」か悩んでいるあなた。いう場合は、Webサービス開発のトレンドから考えるのも一つの手です。現在は、フロントエンドはSPA、バックエンドはマイクロサービスを中心に据えた開発が主流です。このトレンドが続くとすると、全盛りの「Django」より、「Flask」の様な軽量なフレームワークの需要が増えてきそうだなという風に予想出来ます。「Flask」であるべき絶対的な理由は無いです。技術トレンドやビジネス戦略も含めて総合的に考える事が大切です。その他のWebフレームワークPythonのWebフレームワークではDjangoとFlaskを押さえておけば基本的にOKですが、その他のWebフレームワークについても簡単に紹介しておきます。「Bottle」は、PythonのWebフレームワークの中で最もシンプルで軽量なフレームワークです。残念ながら、「Bottle」を使用した仕事、求人案件は見かけないので、勉強用としての使用になります。「Bottle.py」という1ファイルだけで動作します。サーバへのデプロイも簡単で、ソースコードも見やすいという特徴があります。Interface)Webサーバーへのリクエストを複数のWebアプリケーションを利用して処理するシステムを実装することができます。React.jsをベースに開発されたPythonのWebフレームワークで、特にデータ可視化をする上で威力を発揮します。Dashの特徴データ可視化に優れるPythonのデータ可視化ライブラリである「Plotly」をベースに開発されているだけあって、簡単に美しいグラフ等を出力する事が出来ます。「Plotly」や「Dash」といったPythonのデータ可視化について特化した講座です。自分も、株価をAPIで取得し、表示する先ほど上で紹介したグラフをたった1時間程度で作る事が出来ました。何気に凄くないですか?基礎的なHTML/CSSとPythonの知識は必要ですが、Pythonのデータ可視化について集中的に取り上げた講座は少ないので非常に貴重です。仕事では、データ分析はもちろん、分析結果を経営者層に分かりやすく伝え、意思決定をして貰うかが最重要です。言葉で長々と説明するよりも、視覚的に表現されたグラフを示す方が、何倍も早く納得してもらえるので、仕事に活用したい人にはオススメです。Feedによって開発され、Facebookに吸収されたのちにオープンソース化されたWebフレームワークです。Webフレームワークとしても充分な機能がありますが、Webサーバとしての側面もあります。リアルタイム通信リアルタイムでの通信を行う「WebSocket」がサポートされています。BusinessProfileこんにちは、「佐々木ケン」です。「技術」と「稼ぐ力」を兼ね備えた強い個人を生み出すべく活動しています。「あなたにはビジネスで遠回りしてほしくない!」との信念の元、自分の体験をベースに、ビジネスを構築する方法をお伝えしてます。View)」って何?「MVC」と何が違う?【完全版】Amwayを勧誘する人の特徴。