Pythonフレームワーク比較!2018版
先日、こんな記事を書きましたが、とても好評で
調子に乗って、Pythonのフレームワークの比較も書きたいと思います!しかも2018年最新版という位置付けで書きます!
では、始めましょう!
目次
Django
Official Website | GitHub | PyPI | Awesome
特徴メモ
DjangoはPythonのフレームワークでも最も有名なフレームワークです。
Pythonのウェブフレームワークと言ったらDjangoが定番と言って良いでしょう。
Flask
Official Website | GitHub | PyPI | Awesome
特徴メモ
FlaskはPythonのWebアプリケーションフレームワークです。
マイクロWebフレームワークの中でも人気のフレームワークです。中規模以上の開発にも対応しているということです。
Djangoのようなフルスタックフレームワークと違い、軽量で簡単に実行できる。
サクッとちょっとしたウェブアプリケーションを作るときは、これでいいかもしれません!
Bottle
Official Website | GitHub | PyPI
特徴メモ
Bottleはライブラリが一つのpythonファイルのみで構成されており非常にシンプルで使いやすいです。マイクロWebフレームワークです。
DjangoやFlaskが有名で定番ですが
Web初心者には少し高機能すぎるかもしれません、簡単ですぐ始めたい人はBottleをおすすめです。
Djangoがまでの機能は必要ないという開発者向けにWeb開発を行う最低限の機能は備えたフレームワークです。
CherryPy
Official Website | GitHub | PyPI
特徴メモ
CherryPyは、軽量なpython ウェブアプリケーションフレームワークです。上のスクリーンショートのように、数行でウェブサーバーの作成ができてしまいます!
もっと軽量でSinatra-likeに書けるpython WAFにFlask/Bottleがあるが、オブジェクト志向のように書けて、url Routingとオブジェクトツリーを対応させたい場合にはCherryPyが良いと思ます。
例えば、APIだけサクッと書きたいときはCheeryPyがいいかもしれません。
Fullstack WAFだとDjangoが圧倒的だと思いますが、プロトタイプを作る用途でしたら、WebAPIのみ作成するならCherryPyがベストかもしれません。
Pyramid
Official Website | GitHub | PyPI | Awesome
特徴メモ
Flaskの物足りなさが嫌い、Djangoの重厚さに呼吸困難なあたなに朗報!
Pyramidをお選びください!笑
TurboGears
Official Website | GitHub | PyPI
特徴メモ
AjaxやWebサービスといった今日的なWeb技術を手軽に体験できる意欲的なフレームワークです。
O/
Web2py
Official Website | GitHub | PyPI
特徴メモ
日本語のドキュメントもあります。
web2py は、データベースを使用するタイプのWebアプリケーションを、アジャイルで開発するためのオープンソースのフレームワークでです。
web2pyはセキュリティーの確保に重点を置いています。例えばデフォルトで入力値の検証を行ったり、出力のエスケープを行う仕組みを提供しています。これらの仕組みはSQLインジェクション、クロスサイトスクリプティング、安全でないオブジェクトの直接参照といったよくある脆弱性の問題を未然に防ぐことを目指しています。
Tornado
Official Website | GitHub | PyPI
特徴メモ
Tornadoは、Pythonで書かれたWebフレームワーク/非同期通信ライブラリであり以下の特徴があります。
- FriendFeedにより開発(現在はFacebook)
- OpenSource(Apache 2.0)
- Python2系, Python3系, PyPyで動作
- シングルプロセス、シングルスレッド
- シンプル、高速、スケールしやすい
- テンプレートエンジンが同梱されている
Sanic
Official Website | GitHub | PyPI
特徴メモ
Full Stack Python!
Sanic is a Flask-like Python 3.5+ web server that’s written to go fast.
Sanicは著名なイベントループライブラリであるuvloopを利用しています。
Node.jsのように非同期I/Oによる高効率なHTTPリクエスト処理が可能です。
また、SanicはFlaskとよく似たシンタックスを提供しているため、他のフレームワークよりも移行コストを抑えることができます。
Dash
Official Website | GitHub | PyPI | Awesome
特徴メモ
Python製のWebアプリケーションのフレームワークです。
他のフレームワークの大きいな違いは、DashはPlotlyを使用した可視化されたデータを組み込むことができます。
UIを操作しながら対話的に出力内容をコントロールすることができます。
データを視覚的に処理する内容が多いアプリケーションは、Dashが便利かもしれませんね。
こちらのDashを紹介するMedium記事もおすすめです。
https://medium.com/@plotlygraphs/introducing-dash-5ecf7191b503
ぜひ合わせてお読みいただければと思います。
AIOHTTP
Official Website | GitHub | PyPI
特徴メモ
asyncioと連携するために設計されたライブラリです。(ウェブアプリケーションフレームじゃないかもしれません!笑)
japronto
Official Website | GitHub | PyPI
特徴メモ
RPSが高い!とにかく早い!
japranto githubページより引用
まとめ
いかがですか?
どのフレームワークも一長一短があると思いますし、慣れや経験、コミュニティーのサポート、ライブラリーの豊富さなど様々の選別要因があると思います。
よく今からスタートするプロジェクトの要件を見極めて、そのプロジェクトに適した一番良いフレームワークを選んでください。
迷ったら、一番人気のものにしてください。
では、また!
(この記事はまた、新しい知見、経験、感想があれば、随時更新、加筆していく予定です!)
https://t.co/rCp2Ujr8Gu#python が来ていますね!
私もいいタイミングで
pythonのプロジェクトを一つ始めました!
ラッキー!— 川島@ソフトウェア、Web、アプリ、IoT作るのが大好き (@kokensha_tech) 2018年5月22日
[amazonjs asin=”4822292274″ locale=”JP” title=”独学プログラマー Python言語の基本から仕事のやり方まで”]
[amazonjs asin=”4802094744″ locale=”JP” title=”現場で使える Django の教科書《基礎編》”]
[amazonjs asin=”B07B2LFGH2″ locale=”JP” title=”PythonでWebサービスを作る – Python3 + Flaskで作るWebアプリケーション開発入門 – その1”]