[Python]Web上で実行させるためのステップ

Web上でプログラムやアプリケーションを実行することは、普通にやるとそれなりにハードルは高くなります。実行するだけ、という静的なものならともかく、入力や検索、データベースなどとの連携などが絡んでくると考えなければならないことが多くなるし、テストやチェックも大変になります。

こういうときに「これを使えばちょっとの手間とアイデアを形に出来る」ような枠組みが存在している。一から作るのはさすがに労力とリターンが見合わないので、今回はこのフレームワークを有効活用していきます。

フレームワークとは、ざっくりというと、「アプリケーション開発に必要な部分の機能は呼び出せば使えるようになっているので、その枠組みをベースにして必要なところの機能を足せばそのアプリケーションを作れる」という、大枠の全体をサポートするプログラム群のことを指す…らしい。

ライブラリなどと比較されるようですが、ライブラリというのはあくまでも必要な関数を呼び出しやすく、まとめておいたもの。あくまで命令の塊だと覚えておけば多分大丈夫だと思います。

対するにフレームワークではそれを使えば概ねの形はできているので、Webアプリフレームワークを引っ張ってきて導入すれば、最低限Webアプリとして使える体裁は整うことになります。細かい部分の調整と中身の変更だけで作りたいWebアプリが作れる代物。

Pythonにおけるフレームワーク

Pythonは現在様々な用途で使用され、利用される範囲も拡大しています。

  • Webアプリケーション
  • AI開発
  • IoT利用

具体的なものは、WebアプリケーションではyoutubeやInstagramなど、AI開発ではペッパーくんの中身がPythonで動いているそうです。IoTではRaspberry Piなどでセンサーやスイッチのオンオフなどを遠隔で行う装置を作るなどの学習で人気になっているようです。

今回私が作りたいものはWebサイト上で動くWebアプリなので、Webアプリのフレームワークを選んで使いましょう。こちらもほぼ全ての機能がオールインワンとして入っているもの、必要最小限の機能を備えていて必要なものを後から追加していくものに大別される。前者の多機能なものをフルスタックフレームワーク、後者の最小限のものをマイクロフレームワークと呼びます。

  • フルスタックフレームワークの例
    • Django
    • Web2py
    • Pylons
    • CubicWeb
  • マイクロフレームワークの例
    • Flask
    • Bottle
    • CherryPy
    • Dash

世界的なシェアの観点から言うと、FlaskとDjangoがおよそ50%弱で2強と言っていい状況らしいです。その次くらいにBottleが人気だそうです。もちろん他の物も利点や目的に応じたフレキシブルさなどの差はありますが、人気があるこの2つのメリットは何かやりたいときに必要なドキュメントが他とは比較にならないほど出てくるということになります。もちろん必要な部分は自分でコードを書く必要がありますが、ある程度までのサンプルが欲しい、などの場合には一から作らなくてもいいというのは時間的にもミスなどにも多大なメリットがあるでしょう。

というわけで、今回は学習のためなので、マニュアルやサンプルが多く見つかるであろうFlaskかDjangoをチョイスすることになりそうです。

今回は何を選ぶべきか

今回の自分にとっては、大規模なものは作らないし、自分が起動出来たら満足するような小規模のテストケースのようなものがほとんどであろうことが、現時点では考えられます。よって、大規模ななんでも使えるような高機能ではなく、あくまで必要最小限、といった形で導入すると無駄がないはず。

従って、今回用いるのはDjangoではなくFlaskということになりそうです。ただ、ビジネスというかエンジニアとしてやっていくならDjangoはほぼ必須案件らしいので、これでは足りないと思ったり本格的にやりたいとなったらそちらももちろん触れなければならないのでしょう。

コメント

PAGE TOP
タイトルとURLをコピーしました