Flask入門~公式ドキュメントを読み解く~ Day 0 ~
はじめに
昨今、機械学習やAIというワードを目にしない日は無いのではないでしょうか。巷ではこれらの技術書や記事がたくさんあり、ちょっとやってみようと試している方も大勢いらっしゃるかと思います。
ただ、これらの技術を試してみたものの、この先どうすればいいのかと迷われている方がたくさんいるような気がしています。
AIの使い道は色々と考えられますが、手っ取り早く応用する先がWebサービスです。 学習したモデルをWebサービスに組み込み公開することで、多くの人に使ってもらうことができます。
機械学習のモデルをWebサービスに組み込むという話の前に、PythonのWebフレームワークであるFlaskについて、公式ドキュメントのチュートリアルを題材に記事を書いていきます。 (Flask入門の記事の完走後に機械学習モデルを組み込む記事も書きたいと思います)
今回の一連の記事は以下の方を対象とします。
Flaskとは
Flaskの特徴として、公式サイトにも記載があるように、"microframework"であるということが言えます。これはどういうことかというと、Webアプリケーションを作る上で必要最低限の機能しかありません。色々と機能がある方がいいんじゃないかと思われる方もいるかと思いますが、機能が多いということは、その分知っておかないといけないことが多く、学習コストが大きくなります。また、Flaskは軽量なフレームワークなので、ちょっとしたアプリケーションを作りたい場合に向いています。
Flaskの公式サイトは以下になります。古いバージョンでは一部翻訳されたものがありそうですが、最新バージョンである1.0.2では全て英語です。
なぜFlaskなのか
WebフレームワークといえばRuby on Railsを思い浮かべる方が大多数かと思います。 Ruby on Railsは非常に強力なフレームワークで、簡単にWebサービスが作れてしまいますが、今回は以下の点を考慮し、Flaskを選択しました。
- Ruby on Railsのコード自動生成は強力すぎて、初学者の方は「よくわからんけどできた」に陥りやすい
- 機械学習を学習している方はPythonの方が馴染みがある
- django(Pythonの別のWebフレームワーク)と比べても学習コストが低い
環境セットアップ
今回使用する環境は以下の通りです。
- ホストOS : macOS Mojave
- ゲストOS : Ubuntu-18.04
- Vagrant 2.2.0
- VirtualBox 5.2.20
- Anaconda3-5.3.0
- Python 3.7.0
- Flask 1.0.2
まずはホストマシンにVirtualBoxとVagrantをインストールします。 公式からインストールしても良いのですが、Macの場合、homebrew-caskでインストールした方がスマートでしょう。 ターミナルで以下のコマンドを入力します。
brew cask install virtualbox brew cask install vagrant
Windowsの方、homebrew-caskの使い方が分からない方は公式サイトからダウンロードしてインストールしましょう。
次にUbuntuをインストールしていきます。 ホストOS上に任意のフォルダを作成します。
今回私は、/Users/usktkt/Develop/ubuntu-18.04 というフォルダを作成しました。
フォルダを作成した後に、ターミナルで作成したフォルダに移動します。
そして今回はUbuntu-18.04をインストールするので、以下のコマンドを入力します。
vagrant init ubuntu/bionic64
すると、フォルダにVagrantfileなるものができていると思います。
Vagrantfileをエディタで開くと色々と設定が書いてありますが、ひとまず以下の一行の#を削除するだけで良いかと思います。 Vagrantファイルを編集することでインストールするOSの設定をすることができるので、興味がある方は調べてみてください。
# config.vm.network "private_network", ip: "192.168.33.10"
Vagrantfileの設定が完了したら、以下のコマンドでVagrant Boxのダウンロードとインストールを行います。 ネットワーク環境によってはダウンロードにかなり時間がかかるので、一息つきながら待ちます。
vagrant up
インストールが完了したら、以下のコマンドでUbuntuに接続します。
vagrant ssh
コマンドを入力した後のプロンプトが以下のようになっていればインストール成功です。
vagrant@XXXX:~$
まとめ
今回はこのFlaskに関する記事を書く目的と、Vagrantのセットアップ方法について書きました。 次回はUbuntu上へのPythonとFlaskをインストールし、 最初のFlaskアプリケーションを作ってみたいと思います。