1. Webアプリケーションを作る準備¶
Flaskでウェブアプリケーションを開発するために必要となるライブラリや ツールをインストールします。
今回のハンズオン用のファイルを取得¶
Flaskでウェブアプリケーションを開発するために必要となるライブラリを インストールします。
gitが使える方:
git clone https://github.com/planset/study_flask
gitが使えない方は ここをクリック してダウンロードしてください。
各種インストール¶
pip¶
パッケージを管理するツールです。
インストール方法:
easy_install pip
使い方:
# Flaskのパッケージをインストールする
pip install Flask
# flaskに関係するパッケージを検索する
pip search Flask
# テキストファイルにまとめたパッケージを一度にインストールする。
pip install -r requirements.txt
# 現在の環境にインストールしているパッケージの一覧
pip freeze
# いろいろインストールしたパッケージを別の環境でも
# インストールしたいときは、freeze -> install -r するとよい
pip freeze > requirements.txt
pip install -r requirements.txt
virtualenv¶
グローバルな環境のpythonには影響しないよう、 個別のpython環境を管理するためのツールです。
インストール方法:
pip intall virtualenv
virtualenvwrapperも入れると便利です。
実際に環境を作ってみよう¶
実際にpythonの仮想環境を作ってみましょう。
まず、今日のハンズオンで使うディレクトリを作成し、 更にその中の env というディレクトリに仮想環境を構築します。
構築したらenv/bin/activateまたはenv/Scripts/activate.batを実行して仮想環境に入ります。
$ mkdir handson
handson $ cd handson
handson $ virtualenv env
handson $ source env/bin/activate
[env] handson $
仮想環境に入るとコンソールに[env]というように現在の仮想環境が表示されます。
Flaskをインストールしましょう。
[env] handson $ pip install flask
...
Successfully installed Flask Werkzeug Jinja2 itsdangerous markupsafe
Cleaning up...
色々と表示がでますが、最後にSuccessfullyと表示されていればOKです。
Flaskについて¶
Flaskはマイクロフレームワークと呼ばれる部類の ウェブアプリケーションフレームワークです。
フルスタックフレームワークと違い必要最小限の機能だけで構成されています。
Hellow world!で簡単な例を確認してみましょう。
FlaskでHello world!¶
virtualenvの環境にactivateした状態で行います。
- ファイルを編集します。
mkdir helloworld
cd helloworld
vim app.py
- 以下のように編集します。
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return 'Hello world!'
if __name__ == '__main__':
app.run(debug=True)
- 実行します。
python app.py
- ブラウザで http://127.0.0.1:5000 を開きます。
解説¶
from flask import Flask
flaskパッケージのFlaskクラスをインポートしています。
app = Flask(__name__)
Flaskクラスのインスタンスを作成してします。
@app.route('/')
def index():
return 'Hello world!'
Flaskクラスのインスタンス(app)のrouteデコレータを使い、 / というURLに対しての処理を追加しています。
if __name__ == '__main__':
app.run(debug=True)
Flaskの開発用サーバーを実行しています。
debug=Trueとするとデバッグモードで起動します。
host=‘0.0.0.0’でバインドするIPの指定や、port=5000でポートを指定できます。