Flaskで作ったWebアプリをHerokuで最速公開するためのheroku-readyというテンプレートを作りました
Flask製のWebアプリを作るとき毎回同じ手順を踏んでいたりして面倒だったので、heroku-readyというテンプレートを作った。特徴は以下のとおり。
- Heroku連携
- Python3対応
- AlembicによるDBのマイグレーション
- Flask-SQLAlchemy連携
- Postgresql連携
- Blueprintを使った構成
現時点で自分が欲しかった機能は実装されている。
INSTALL
git clone https://github.com/okamurayasuyuki/heroku-ready
pyvenv-3.4 venv
source venv/bin/activate
pip install -r requirements.txt
SETUP
次にbasic_app.config.pyのdb_pathを以下のように置き換える。
db_path = 'postgresql://username:password@hostname/db_name'
SETUP For Heroku
$git add .
$git commit -m 'init'
$heroku create
$git push heroku master
HerokuでPostgresqlを使えるようにするためにAddonを追加する。
$heroku addons:add heroku-postgresql:dev
CREATE DB
ローカル
$python -i
>> from basic_app import create_app,db
>> create_app().app_context().push()
>> db.create_all()
リモート(Heroku)
$heroku run python -i
>> from basic_app import create_app,db
>> create_app().app_context().push()
>> db.create_all()
MIGRATE DB
ローカル
$alembic revision --autogenerate -m "add password"
$alembic upgrade head
リモート(Heroku)
$heroku run alembic revision --autogenerate -m "add password"
$heroku run alembic upgrade head
Finally
自分が使っていて不満に思っていたところは多分このテンプレートで解消できたはず。 良かったら使ってみてください。heroku-ready