- 公開日:2017-9-13 最終更新日:2017-9-11
- プロナビTOP / プログラミング初心者向け技術系ノウハウ・まとめ

目次
はじめに
Pythonのフレームワークを活用していますか?
フレームワークはアプリケーションの枠組みを提供してくれ、多くの一般的な処理をまかなってくれます。
最もフレームワークが役に立つのは、ウェブアプリケーションでしょう。
ウェブアプリ開発には定型的な処理が多く、フレームワークを利用すると非常に開発が楽になります。
この記事では、Python初心者の方向けに、Pythonのフレームワークの利用方法についてお伝えしていきます。
ウェブアプリを開発したい方は、ぜひご一読下さい。
フレームワークの基本的な役割
フレームワークは、いうなればライブラリの集合体です。
とはいえ、ライブラリよりも明確な方向性があります。
フレームワークには構造があり、アプリケーション全体をフレームワークの作法に従って構築していくことになります。これは不自由なように思いますが、フレームワークのアーキテクチャは十分に検証されており、たいていは自分で一から構築するよりもキレイなプログラムになります。
また、定型的な処理を再開発する必要もなく、生産性も大きく向上します。
次項で、Pythonの代表的なフレームワークについてみていきましょう。
Pythonの代表的なフレームワーク
Django
Django(ジャンゴ)は、Pythonで最も有名なウェブアプリケーションフレームワークです。
MVC(Model-View-Controller)アーキテクチャを採用したフルスタックフレームワークであり、これひとつでウェブアプリが開発できます。ウェブアプリ開発で真っ先に検討されるフレームワークでしょう。
中規模以上のウェブアプリ開発に最適です。
Flask
Flask(フラスコ)は、Django同様にウェブアプリケーションフレームワークです。
Djangoが全部入りのフレームワークであるのに対し、Flaskは「マイクロフレームワーク」という位置づけであり、最小限の機能しか持っていません。このため、Djangoよりも軽量であり、足りない機能は必要に応じて追加できるようになっています。
小規模なアプリを素早く作成するのに向いています。
Tensorflow
Tensorflow(テンサーフロー)は、機械学習を行うためのフレームワークです。
機械学習は人工知能(AI)の一分野であり、Tensorflowはその中の深層学習(ディープラーニング)をサポートしています。
Anacondaは科学技術計算向けのディストリビューションなので、相性が良いといえます。
これからさらに人気が高まりそうな、今話題の分野です。
実際にフレームワークをインストールして使ってみよう
それでは、シンプルなウェブアプリケーションフレームワークであるFlaskを実際に使ってみましょう。
まずは、パッケージマネージャー”conda”を使って、Flaskをインストールしてみましょう。
次のコマンドを入力して下さい。
なお、パッケージマネージャーの詳細については、前回の記事をご覧下さい。
1 |
conda install flask |
ここでは、念のためインストールコマンドを実行していますが、通常はAnacondaによりインストール済みになっているはずです。
次に、Flaskで”hello, world”を実行してみましょう。
難しいことはなく、次のような非常に短いコードで実行できます。
例:
1 2 3 4 5 6 7 8 9 |
from flask import Flask app = Flask(__name__) @app.route("/") def hello(): return "hello, flask!" if __name__ == "__main__": app.run() |
この例を実行すると、コンソールにURLが表示されますので、お好きなブラウザでアクセスしてみましょう。
うまくいっていれば、ブラウザに”hello, flask!”と表示されます。
このように、Flaskは非常にシンプルなフレームワークです。
気に入った方は、公式ドキュメントを参考に勉強してみるとよいでしょう。英語ですがとても充実しており、チュートリアルも用意されています。
Flaskドキュメント:
1 |
http://flask.pocoo.org/docs |
まとめ
いかがでしたでしょうか?
フレームワークはうまく使えましたか?ここで紹介したもの以外にも、Pythonにはたくさんのフレームワークがあります。
グーグルなどの検索エンジンで探してみるとよいでしょう。
インストールにはパッケージマネージャーを使うと簡単です。
ドキュメントが英語である場合も多いですが、サンプルコードを参考にがんばって解読してみましょう。
あなたはどんなフレームワークを使いますか?