Python を用意する
version は 2 系の最新版を用いる.
Python のバージョン管理には pyenv, ディレクトリごとの環境分離を virtualenv を使う.
Mac を使っているので brew より,
brew install pyenv
brew install pyenv-virtualenv
でインストール.
$ pyenv install -l | grep 2.7
2.7
2.7-dev
2.7.1
2.7.2
2.7.3
2.7.4
2.7.5
2.7.6
2.7.7
ironpython-2.7.4
jython-2.7-beta1
jython-2.7-beta2
stackless-2.7-dev
stackless-2.7.2
stackless-2.7.3
stackless-2.7.4
stackless-2.7.5
stackless-2.7.6
最新版は 2.7.7
のようだ. インストールする.
pyenv install 2.7.7
なお自分は古い pyenv を使ったため以下のエラーが起きた.
Mac の pyenv で 2 系を入れるときに checksum エラーが起きたときの対処法 - Qiita
バージョンを変えて確認
$ pyenv shell 2.7.7
$ python --version
Python 2.7.7
OK.
Flask を導入する
まず開発ディレクトリに移動.
cd path/to/proj
virtualenv venv27
activate (source
or .
を忘れずに)
source venv27/bin/activate
Flask, gunicorn の install
pip install Flask
かくにん
$ pip list
Flask (0.10.1)
itsdangerous (0.24)
Jinja2 (2.7.3)
MarkupSafe (0.23)
pip (1.5.6)
setuptools (3.6)
Werkzeug (0.9.6)
wsgiref (0.1.2)
開発する
Hello World!
hello.py を作る.
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run()
ローカルで走らせる.
$ python hello.py
* Running on http://127.0.0.1:5000/
http://127.0.0.1:5000/ にアクセスすると表示される
Heroku で動かす
gunicorn を入れる
pip install gunicorn
かくにん
$ pip list
Flask (0.10.1)
gunicorn (19.1.1)
itsdangerous (0.24)
Jinja2 (2.7.3)
MarkupSafe (0.23)
pip (1.5.6)
setuptools (3.6)
Werkzeug (0.9.6)
wsgiref (0.1.2)
Procfile を用意する
procfile · herokaijp/devcenter Wiki
web: gunicorn hello:app --log-file -
requirements.txt を書き出す
pip freeze > requirements.txt
.gitignore を作る
virtualenv のディレクトリ (venv27
) を除いておく.
*.pyc
*.pyo
venv27
git に commit し, push する.
git add .
git commit -m 'Hello World!'
git push origin master
heroku に login し, push する.
heroku login
heroku create
git push heroku master
Web のインスタンス追加
heroku scale web=1
開く
heroku open
めで鯛
- https://fathomless-stream-3792.herokuapp.com/
-
sqrtxx-playground/flask-sample
- 作業したリポジトリ. playground 用 organization あると便利.