2019年9月8日日曜日

Pythonフレームワーク比較!2018版

https://www.google.co.jp/amp/s/kokensha.xyz/web/best-python-framework-2018/amp/
シェアしました。

先日、こんな記事を書きましたが、とても好評で
調子に乗って、Pythonのフレームワークの比較も書きたいと思います!しかも2018年最新版という位置付けで書きます!
では、始めましょう!

Django


 特徴メモ

DjangoはPythonのフレームワークでも最も有名なフレームワークです。
Pythonのウェブフレームワークと言ったらDjangoが定番と言って良いでしょう。

Flask

 特徴メモ

FlaskはPythonのWebアプリケーションフレームワークです。
マイクロWebフレームワークの中でも人気のフレームワークです。中規模以上の開発にも対応しているということです。
Djangoのようなフルスタックフレームワークと違い、軽量で簡単に実行できる。
サクッとちょっとしたウェブアプリケーションを作るときは、これでいいかもしれません!

Bottle

 特徴メモ

Bottleはライブラリが一つのpythonファイルのみで構成されており非常にシンプルで使いやすいです。マイクロWebフレームワークです。
DjangoやFlaskが有名で定番ですが
Web初心者には少し高機能すぎるかもしれません、簡単ですぐ始めたい人はBottleをおすすめです。
Djangoがまでの機能は必要ないという開発者向けにWeb開発を行う最低限の機能は備えたフレームワークです。

CherryPy

 特徴メモ

CherryPyは、軽量なpython ウェブアプリケーションフレームワークです。上のスクリーンショートのように、数行でウェブサーバーの作成ができてしまいます!
もっと軽量でSinatra-likeに書けるpython WAFにFlask/Bottleがあるが、オブジェクト志向のように書けて、url Routingとオブジェクトツリーを対応させたい場合にはCherryPyが良いと思ます。
例えば、APIだけサクッと書きたいときはCheeryPyがいいかもしれません。
Fullstack WAFだとDjangoが圧倒的だと思いますが、プロトタイプを作る用途でしたら、WebAPIのみ作成するならCherryPyがベストかもしれません。

Pyramid

 特徴メモ

Flaskの物足りなさが嫌い、Djangoの重厚さに呼吸困難なあたなに朗報!
Pyramidをお選びください!笑

TurboGears

 特徴メモ

AjaxやWebサービスといった今日的なWeb技術を手軽に体験できる意欲的なフレームワークです。
O/Rマッパー,テンプレートエンジンなど一部の部品は置き換え可能で,必要に応じて部品を取り替えることができます。

Web2py

 特徴メモ

日本語のドキュメントもあります。
web2py は、データベースを使用するタイプのWebアプリケーションを、アジャイルで開発するためのオープンソースのフレームワークでです。
web2pyはセキュリティーの確保に重点を置いています。例えばデフォルトで入力値の検証を行ったり、出力のエスケープを行う仕組みを提供しています。これらの仕組みはSQLインジェクション、クロスサイトスクリプティング、安全でないオブジェクトの直接参照といったよくある脆弱性の問題を未然に防ぐことを目指しています。

Tornado

 特徴メモ

Tornadoは、Pythonで書かれたWebフレームワーク/非同期通信ライブラリであり以下の特徴があります。
  • FriendFeedにより開発(現在はFacebook)
  • OpenSource(Apache 2.0)
  • Python2系, Python3系, PyPyで動作
  • シングルプロセス、シングルスレッド
  • シンプル、高速、スケールしやすい
  • テンプレートエンジンが同梱されている

Sanic

 特徴メモ

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

 特徴メモ

Python製のWebアプリケーションのフレームワークです。
他のフレームワークの大きいな違いは、DashはPlotlyを使用した可視化されたデータを組み込むことができます。
UIを操作しながら対話的に出力内容をコントロールすることができます。
データを視覚的に処理する内容が多いアプリケーションは、Dashが便利かもしれませんね。
こちらのDashを紹介するMedium記事もおすすめです。
ぜひ合わせてお読みいただければと思います。

AIOHTTP

 特徴メモ

asyncioと連携するために設計されたライブラリです。(ウェブアプリケーションフレームじゃないかもしれません!笑)

japronto

 特徴メモ

RPSが高い!とにかく早い!
japranto githubページより引用

まとめ

いかがですか?
どのフレームワークも一長一短があると思いますし、慣れや経験、コミュニティーのサポート、ライブラリーの豊富さなど様々の選別要因があると思います。
よく今からスタートするプロジェクトの要件を見極めて、そのプロジェクトに適した一番良いフレームワークを選んでください。
迷ったら、一番人気のものにしてください。
では、また!
(この記事はまた、新しい知見、経験、感想があれば、随時更新、加筆していく予定です!)


独学プログラマー Python言語の基本から仕事のやり方まで

独学プログラマー Python言語の基本から仕事のやり方まで

  • 著者コーリー・アルソフ
  • 価格¥ 2,376(2019/09/08 00:36時点)
  • 出版日2018/02/24
  • 商品ランキング735位
  • 単行本322ページ
  • ISBN-104822292274
  • ISBN-139784822292270
  • 出版社日経BP
現場で使える Django の教科書《基礎編》

現場で使える Django の教科書《基礎編》

  • 著者横瀬 明仁
  • 価格¥ 1,728(2019/09/08 14:36時点)
  • 出版日2018/08/26
  • 商品ランキング14,008位
  • オンデマンド (ペーパーバック)180ページ
  • ISBN-104802094744
  • ISBN-139784802094740
  • 出版社NextPublishing Authors Press

PythonでWebサービスを作る - Python3 + Flaskで作るWebアプリケーション開発入門 - その1

PythonでWebサービスを作る - Python3 + Flaskで作るWebアプリケーション開発入門 - その1

  • 著者中野 仁
  • 出版日2018/02/24
  • 商品ランキング2,517位
  • Kindle版181ページ
  • 出版社

0 コメント:

コメントを投稿