masoniteアプリをHerokuでデプロイ2020


Masonite

masoniteはPython製のWebフレームワークです。
公式ドキュメントとチュートリアルも用意されており、わりと簡単にはじめられると思います。

準備

Python環境にはvirtualenvを使いました。

$ sudo apt install python3-dev python3-pip libssl-dev build-essential python3-venv
$ mkdir masonite_tutorial && cd masonite_tutorial/
$ virtualenv -p python3.6 venv
$ source venv/bin/activate

次にmasoniteのインストール。craft new コマンドでmasoniteプロジェクトを作成できます。

$ pip3 install masonite
$ craft new

サーバーの立ち上げは以下のコマンド。

$ craft serve

http://localhost:8000 にアクセスすると以下のような画面が立ち上がると思います。

ログイン機能の追加

上記のページだけだとなんか物足りないので、ユーザー登録・ログイン機能を追加します。

$ craft auth

データベースの設定をします。.envファイルがあると思うのでそれを以下のように編集。
そのまえにローカルのpostgresでデータベースを作成するのを忘れずに!

DB_CONNECTION=postgres
DB_HOST=localhost
DB_PORT=5432
DB_DATABASE=hello_masonite_dev
DB_USERNAME=postgres
DB_PASSWORD=postgres
DB_LOG=True

それができたら、以下のコマンド

$ craft migrate

これで機能追加は完了です。
http://localhost:8000/register からユーザー登録ができます。

ここまででコードをgitにあげ、テンプレートにしておくと、今後使いまわせて便利かもしれないです。

Heroku

Procfileを追加

web: gunicorn -w 2 wsgi:application

herokuへのデプロイはコマンドから行いました。

$ heroku git:remote -a masonite-app
$ git push heroku master 
$ heroku run craft migrate

デプロイした後の設定として以下を行います。

  • postgreSQLの追加
    • postgreSQLを追加した後発行されるurlは以下のようになっているので分解して環境変数にセットします
    • postgres://DB_USERNAME:DB_PASSWORD@DB_HOST:DB_PORT/DB_DATABASE
  • 環境変数の設定(各環境変数の値は各自のenvファイルを参照)
    • KEY
    • APP_DEBAG
    • DB_CONNECTION
    • DB_HOST
    • DB_PORT
    • DB_DATABASE
    • DB_USERNAME
    • DB_PASSWORD
    • DB_LOG

参考