LoginSignup
7
6

More than 1 year has passed since last update.

pythonanywhereに作ったアプリをデプロイしてみた

Posted at

Flaskについて調べていたら、「herokuにデプロイして~」「簡単なデプロイ方法」というワードをよく見かけました。

・・・デプロイとは何ぞや??

DevOpsの親戚的なものかな?とか、とんちんかんなことを考えていたのですが。

deploy:配備する、配置する

だそうで。ざっくり言えば、使えるようにアップするぐらいのイメージかな?
というわけで、自分も作ったアプリを「デプロイ」してみました。自分がエラーで引っかかったところも合わせながら書いていきます。

デプロイマンへの道のり

アカウントの作成

公式サイトにアクセスする。アクセスしたら、Start running~をクリックする。

image.png

Beginnerプランを選んで、Create a Beginner account をクリック。
※他のプランは有償なので注意
image.png

項目に各情報を入力する。利用規約とプライバシーポリシー&クッキーポリシー(I agree to~)にチェックを入れたら、Register をクリック。

Usernameは半角英数字のみ(このアカウントのままアンダーバー入れようとしたらNGだった)

image.png

登録するとこの画面が出てくる。
image.png

ファイルのアップロード

ファイルのアップロード方法には①Git経由、②アップロード経由 の2種類存在する。自分の場合は②を選択することにした(楽だから)
アップロードするファイルの構成は下記の通り。

tatuya.zip
tatuya/
|__tatuya.py
|__templates/
      |__form.html #入力用
      |__test.html #出力用
|__static/
      |__style.css #入力用デザイン
      |__style2.css #出力用デザイン

Files>Open another fileを選択。次の画面にUpload a file が現れるので、該当のzipファイルをアップロードする。
image.png

Consoles>$Bashでコンソール画面を開く。unzipでアップしたファイルを解凍しておく。
image.png

unzip tatuya.zip

デプロイ

コンソールを開き、仮想環境の設定とモジュールのインポートを行う。

#仮想環境の作成(todoがファイル名、Pythonバージョンは各自決める)
mkvirtualenv todo --python=python3.9

#利用するモジュールのインポート
pip install Flask
pip install jaconv

Web>Add a new web appをクリック。framework:manual configuration、version:Python3.9を選択。
image.png

新しく設定画面が立ち上がったよ。やったね。
image.png

仮想環境のパスを通す。Virtualenv>Enter~をクリック。タブに指定したファイル名(ここではtodo)を入れてチェック。
image.png

Code>WSGI Configuration file を選択。pyファイルを書き換える。
image.png

ファイルからFlaskの記述部分だけ残して、あとは削除する。中身を下記のように書き換える。
image.png

Code>Working directory を選択。パスをファイルが入っているところに書き換える。
image.png

Static files でメインファイル以外のパスを通す(htmlやcssなど)
image.png

Reloadをクリックして設定を反映させる。その後URLから、ファイルの中身が反映されていることを確認する。
image.png

Security>Force HTTPS でEnabledに変更しておく。
image.png

補足

Flaskの場合、ローカル環境下だとhost=○○で実行させていることがある(自分もそうだった)。ただpythonanywhere内ではエラーになるらしいので、app.run()に変更する必要あり。
image.png

デプロイしたアプリ

ちゃんとクラウド上で使えそうです。

元ネタはこれ。

まとめ

何とかデプロイマンになれた。

参照

https://help.pythonanywhere.com/pages/Flask/
https://qiita.com/tonytani37/items/60c7185b7cc235f45daf
https://www.pythonanywhere.com/forums/topic/12440/

7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6