Webアプリフレームワーク
Django
DjangoはInstagramやPintarestなどでも動いているフレームワークです。
ユーザー認証、管理画面、サイトの案内ページ、RSSフィードといった機能が最初から含まれています。
中規模以上のWebアプリケーションの構築によく使われているので、
求人でもよく出てくるのはDjangoの案件ということが多いです。
Flask
軽量なフレームワークの中では、最も人気があるフレームワークです。
小規模・中規模なWebアプリケーションの構築に向いています。
ブログでサクッとアプリケーションを作っている記事とかではよくFlaskで作られたりしています。
Tornado
静的なファイルの配信に関しては他のフレームワークを圧倒するほど、高速に動作するフレームワークです。
Jupyter Notebookの裏側でも使われていたりします。
Webサーバーとしての需要もあり、Node.jsのPython代替としても使われています。
Bottle
一番シンプルで、軽量なフレームワークです。
1ファイルだけで構成されています。
他のライブラリへの依存がないのが特徴です。
そのため、サーバーへのデプロイも非常に簡単なフレームワークです。
Pyramid
フルスタックなDjangoとは違って、自分で各種ライブラリを組み合わせる必要のあるフレームワークです。
フレームワークからの押し付けがないPyramidは、
自分で好みのライブラリを選択して使いたいユーザーからの支持が厚いです。
機械学習フレームワーク
TensorFlow
Google製の機械学習フレームワークです。
Googleが作ったということもあり圧倒的な利用者数となっています。
計算をすべて計算グラフにて行わないといけないため、最初の理解には少し慣れが必要です。
Chainer
日本人ユーザーが多く使用している機械学習フレームワークです。
柔軟な計算グラフの構築が可能となっており、自然言語の分野で重宝されています。
PyTorch
Facebookがメンテナンスをしているフレームワークです。
日本語での文献は極めて少なく、研究者ユーザーがとても多いです。
スクレイピングフレームワーク
Scrapy
速くて、ハイレベルなスクレイピングのフレームワークです。
クロールとスクレイピングに関する様々な機能を持っています。
Webページのリンクを再帰的にたどって巡回し、各ページに対して所定の処理を行って必要な情報を抽出することができます。
バッチ処理フレームワーク
Luigi
音楽ストリーミングサービスを提供するSpotifyが作ったフレームワークです。
バッチ処理に特化していますが、バッチ処理を実行するような機能はないので、
cronやsystemd timerを使う必要があります。
テストフレームワーク
nose
多彩なオプションで柔軟なテストができ、カバレッジを取ることもできます。
特定のクラスを継承する必要がないです。
unittest
Pythonの標準パッケージに含まれているテストフレームワークです。
まとめ
いかがでしたでしょうか。
今回はPythonのフレームワークをWebアプリケーションからテストまで様々なものを紹介いたしました。
ご自身の用途に合ったフレームワークをぜひ使ってください。