サイトアイコン KOKENSHAの技術ブログ

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

先日、こんな記事を書きましたが、とても好評で

調子に乗って、Pythonのフレームワークの比較も書きたいと思います!しかも2018年最新版という位置付けで書きます!

PythonのFlaskフレームワークでWebを作る!

では、始めましょう!

目次

Django

Official Website | GitHub | PyPI | Awesome

 

 特徴メモ

DjangoはPythonのフレームワークでも最も有名なフレームワークです。

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

Flask

Official Website | GitHub | PyPI | Awesome

 特徴メモ

FlaskはPythonのWebアプリケーションフレームワークです。

マイクロWebフレームワークの中でも人気のフレームワークです。中規模以上の開発にも対応しているということです。

Djangoのようなフルスタックフレームワークと違い、軽量で簡単に実行できる。

サクッとちょっとしたウェブアプリケーションを作るときは、これでいいかもしれません!

PythonのFlaskフレームワークでWebを作る!

Bottle

Official Website | GitHub | PyPI

 特徴メモ

Bottleはライブラリが一つのpythonファイルのみで構成されており非常にシンプルで使いやすいです。マイクロWebフレームワークです。

DjangoやFlaskが有名で定番ですが

Web初心者には少し高機能すぎるかもしれません、簡単ですぐ始めたい人はBottleをおすすめです。

Djangoがまでの機能は必要ないという開発者向けにWeb開発を行う最低限の機能は備えたフレームワークです。

Pythonフレームワークの Bottleで180秒ででウェブサービス(ページ)を作りましょう!

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/Rマッパー,テンプレートエンジンなど一部の部品は置き換え可能で,必要に応じて部品を取り替えることができます。

Web2py

Official Website | GitHub | PyPI

 特徴メモ

日本語のドキュメントもあります。

web2py は、データベースを使用するタイプのWebアプリケーションを、アジャイルで開発するためのオープンソースのフレームワークでです。

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

Tornado

Official Website | GitHub | PyPI

 特徴メモ

Tornadoは、Pythonで書かれたWebフレームワーク/非同期通信ライブラリであり以下の特徴があります。

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ページより引用

まとめ

いかがですか?

どのフレームワークも一長一短があると思いますし、慣れや経験、コミュニティーのサポート、ライブラリーの豊富さなど様々の選別要因があると思います。

よく今からスタートするプロジェクトの要件を見極めて、そのプロジェクトに適した一番良いフレームワークを選んでください。

迷ったら、一番人気のものにしてください。

では、また!

(この記事はまた、新しい知見、経験、感想があれば、随時更新、加筆していく予定です!)

 

 

[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”]

 

 

モバイルバージョンを終了