Flask入門~公式ドキュメントを読み解く~ Day 1 ~
前回の内容
前回の記事では、Flaskの特徴の説明、なぜFlaskを使うのか、環境のセットアップについて書きました。
今回は、前回構築したUbuntu上にPythonとFlaskをインストールし、最初のFlaskアプリケーションを作りたいと思います。
PythonとFlaskのインストール
公式サイトでは、venvでPythonをインストールしていますが、今回は便利なAnacondaディストリビューションを使用します。
Anacondaがどういったものなのかはこちらを参照してください。
まずはUbuntuに以下のコマンドを入力し、pyenvを使えるようにします。(何をやっているか分からない方は、とりあえずおまじないだと思って入力してもらって大丈夫です。)
git clone https://github.com/yyuu/pyenv.git ~/.pyenv echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc echo 'eval "$(pyenv init -)"' >> ~/.bashrc source ~/.bashrc
これでpyenvが使えるようになるので、次にAnacondaをインストールします。 以下のコマンドを入力すると、使えるAnacondaのバージョン一覧が表示されます。
今回は表示された中で最新である、Anaconda3-5.3.0をインストールしますが、 実行したタイミングで最新のものをインストールすれば良いかと思います。
pyenv install -l | grep anaconda3 pyenv install anaconda3-5.3.0
Anacondaのインストールにはかなり時間がかかるので、ここで一息つきながら完了を待ちます。
完了後に以下のコマンドで、Anacondaのバージョンが表示されれば、インストール成功です。念の為、globalコマンドも入力しておきます。これにより、デフォルトのAnacodaのバージョンが5.3.0になります。
pyenv versions pyenv global anaconda3-5.3.0
Anacondaのインストールに成功すると、以下のコマンドでAnacondaに同梱されているパッケージを確認することができます。なんと、AnacondaにはFlaskが元々含まれているので、旧バージョンのFlaskを使いたい等の理由が無ければ改めてインストールする必要はありません。
conda list
これでやっと環境の完成になります。
それでは、あらゆる言語のはじめの一歩であるHello worldを表示するWebアプリケーションを作っていきましょう。
初めてのFlaskアプリケーション
まずコードの全体を示します。
from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello, World!'
たったこれだけで、Webアプリケーションの完成です。これをhello.pyなどの名前で保存してください。
上から解説していきます。
1行目ではFlaskモジュールのインポートを行っています。
2行目でFlaskクラスのインスタンスを生成しています。引数の__name__には現在実行中のモジュールの完全修飾名が格納されます。ただし、実行時のトップレベルのモジュールの場合は"__main__"という文字列が格納されます。ここではhello.pyから実行するため、__name__には__main__が入ることになります。なぜここで__name__が必要かというと、後々出てくるtemplates(htmlを格納)やstatic(CSSやJSを格納)の位置をFlaskに知らせるためです。
4行目の@app.route('/')は、URLが'/'のリクエストを受けた場合にその下のhello_world()メソッドを実行させます。 hello_world()は、'Hello, World'という文字列を返すだけのメソッドです。
では、このアプリケーションを実行し、ブラウザで表示させてみましょう。
export FLASK_APP=hello.py flask run --host=0.0.0.0
1行目で、実行するファイルを指定しています。
2行目でビルトインサーバが立ち上がり、hello.pyが実行された状態になります。 *1
この状態で、ホストOSのブラウザから、http://192.168.33.10:5000/ *2にアクセスしてみてください。Hello, World!と表示されれば成功です。
まとめ
今回はVagrantのUbuntu上にAnacondaをインストールし、最初のFlaskアプリケーションを作成しました。
次回からいよいよ公式サイトのチュートリアルに入っていきます。