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

Related Contents

Pickup Contents