プログラミング

PythonフレームワークのFlaskとDjangoを比較解説

2021年1月5日

Pocket

悩む男の子のイラスト Webシステムを作りたいけど、どうやっていいかわからない。Pythonはわかったけど、Webシステムのフレームワークがどんなものがあるか知りたい。あとどれがオススメなのかも教えてほしい。

こんにちは。だんにこ(@dannikosu)です。

 

「初心者に優しいプログラムの代名詞」のPythonでは、Webシステム開発ができます。ですが、PythonだけではWebシステムを開発するのは厳しい状態です。そこでフレームワークを利用して開発を行います。

 

  • フレームワーク …
    システム開発をするのに必要な機能が用意された枠組み。

 

フレームワークを簡単に例えると、その機能を簡単に実装できる道具みたいなものです。Pythonには2つの代表的なWebシステム開発のフレームワークがあります。

 

  1. Django(ジャンゴ)
  2. Flask(フラスク)

 

本記事ではこの2つのフレームワークについて解説していこうと思います。僕は業務内ではありますが、小規模のシステムを1人で開発したことがあります。その時はPython+Flask+MySQL+HMTL+CSS+Javascriptを使って開発しました。僕もそのころは全くの初心者だったので、つまづいては調べてを繰り返し、完成まで行きつきました。本記事もPythonでWebシステム開発を目指す人の手助けになればと思っております。また、Pythonとは何かわからない人は以下の記事もご覧ください。勉強法も解説しています。

 

【入門】Python初心者の効率良い勉強方法。Pythonも解説

「Pythonを最近知って勉強をしたいけど、勉強方法が分からない…。本で独学、プログラミング教室、どれから手を付けたらいいですか?全くプログラミングのことを知らない人でも勉強できるんですか? Pyth ...

続きを見る

 

 

本記事の内容です。

 

  • FlaskとDjangoを解説【有名2大Webフレームワーク】
  • FlaskとDjangoを比較【用途別で使い分けよう】

 

では1つずつ見ていきましょう。

 

FlaskとDjangoを解説

茶色の液体と透明なガラス瓶

まずはFlaskです。

 

Flask(フラスク)は、プログラミング言語Python用の、軽量なウェブアプリケーションフレームワークである。標準で提供する機能を最小限に保っているため、自身を「マイクロフレームワーク」と呼んでいる。Werkzeug WSGIツールキットとJinja2テンプレートエンジンを基に作られている。BSDライセンスで公開されている。

引用:フリー百科事典『ウィキペディア(Wikipedia)』

 

上記はWikiの引用ですが、Flaskの一番の特徴はやはり軽量です。動作が早いWebアプリケーションを作成できる点が凄く人気です。この「軽さ」という理由だけで選択する人も多いでしょう。せっかく頑張って作ったWebアプリケーションが重たくて、不快感を与えていては苦労が水の泡ですものね。その代わり機能は必要最低限しかないですし、小規模Webアプリケーション向きです。必要な機能はその都度インストールしてきて、自分の好きなようにカスタマイズが可能です。

 

 Flask(フラスク)の特徴

  • 必要最低限の機能しかないので軽量。
  • 足らない機能は別途インストールが必要。
  • 細かいカスタマイズができる。
  • 小規模Webシステム作成に向いている。

 

そして必要最低限の機能だけなので、初心者が手を出しやすいのも特徴です。ただ大人数で開発するには不向きで、そのため副業などの仕事として使用するには人気がDjangoに比べると少ない感じがします。個人で勉強したり構築することを考えると使い勝手は最高だと思いますよ。ちなみにNetflixはFlaskで動いています。

 

続いて、Djangoです。

 

Django(ジャンゴ)は、Pythonで実装されたWebアプリケーションフレームワーク。MVCデザインパターンに緩やかに従う。~(中略)~フレームワークはジプシー・スウィングのギタリストであるジャンゴ・ラインハルトにちなんで命名された。Djangoの第一の目的は、複雑なデータベース主体のウェブサイトの構築を簡単にすることであり、コンポーネントの再利用性と'pluggability'、素早い開発、Don't repeat yourselfの原則に力点を置いている。

引用:フリー百科事典『ウィキペディア(Wikipedia)』

 

同じくWikiですが、Djangoの特徴は大規模開発に適したフレームワークということ。Flaskと違ってほとんどの機能がもともと備わっています。Webアプリによくあるログイン機能もDjangoにはあらかじめ実装されています。その分カスタマイズ要素はなく、追加でインストールする必要はありません。いろいろ自分好みに設定したい人はFlask、個別インストールがめんどくさい人はDjangoがオススメですね。

 

 Django(ジャンゴ)の特徴

  • 標準で基本的な機能が備わっているので、動作が重め。
  • 拡張機能を別途インストールする必要なし。
  • カスタマイズはしない。
  • 中~大規模Webシステム作成に向いている。

 

Djangoは大規模開発に適しているので、副業案件は多めです。Pythonを使用したWebアプリ開発はほとんどがDjangoを使用しております。副業でPython案件を目指す人はDjangoを触ってみてもいいかもしれませんね。ちなみにInstagramはDjangoで動いています。

 

FlaskとDjangoを比較【用途別で使い分けよう】

Xizhuo, 野蛮, フラゴン, ステンレス鋼のヒップフラスコ, スター フルーツ, バーテンダー

以下、FlaskとDjangoの違いを表にまとめました。

 

Flask(フラスク) Django(ジャンゴ)
特徴 必要最低限の機能しかないので軽量。 標準で基本的な機能が備わっているので、動作が重め。
拡張機能インストール 足らない機能は別途インストールが必要。 拡張機能を別途インストールする必要なし。
カスタマイズ 細かいカスタマイズができる。 カスタマイズはしない。
システム規模 小規模Webシステム作成に向いている。 中~大規模Webシステム作成に向いている。
難易度 初心者用。 中~上級者向け。
副業案件 知名度はDjangoよりは低く、案件も少なめ。 知名度が高く、案件も多め。
代表作 NetflixはFlaskで作られている。 InstagramはDjangoで作られている。

 

どういうWebシステムを開発するかによって、FlaskとDjangoを使い分けましょう。

 

FlaskとDjangoの人気比較

Google, Www, オンライン検索, 検索, Web ページ, Web アドレス, インターネット

日本の求人

 

 Flask

 

 Django

 

日本の求人はDjangoの方が多いですね。やはり大規模開発ということで、大人数で開発するのに適しているため、求人も多めですね。

 

Google検索

 

 Flask

 

 Django

 

Google検索ではFlaskの方が検索ヒットが多いです。Flaskは軽さが売りで、海外に人気が集中しています。その点日本ではDjangoの方が人気があり、Flaskの日本語解説ページは少な目です。

 

まとめ:副業を狙うならDjango、個人で勉強するならFlask

小さな彫刻, ガラス, 瓶, 花瓶, フラスコ, 猫, 装飾, ミニチュア, 図, ミニ, マクロ, 展示品

FlaskとDjangoの違いや使い分け、理解できましたか?実は他にもフレームワークはあるのですが、今回はこの2つに注目して解説してみました。それぞれ用途・目的をもってどちらを使用するか決めてみてください。

 

Pythonに興味を持った方はPythonのPCへのインストール方法の記事もあるので、ご覧ください。実はPythonをインストールしなくても、使える方法もあるんですよ

 

それではまた。

 

 

-プログラミング

© 2024 だんにこブログ