Help us understand the problem. What is going on with this article?

いろいろワカラなくていいから取り急ぎPythonのWebアプリをherokuに置きたいときにやること

More than 1 year has passed since last update.

はじめに

○「有限会社チャボット」オフィス・中(夜)
   骨喰(23)と三日月(26)だけがいる。
   出口に向かう三日月が話しかける。
三日月「明日のデモ頼むよ。客のシステムと
 連携するのが『チャボット』のウリだから」
骨喰「PythonでWebアプリ作って、連携でき
 るようにしときましたから。見ます?」
   骨喰、キーボードを叩く。PCの画面に
   会話が表示される。骨喰が発話すると、
   発話から助詞が抜かれカタカナに変換
   されたものが『チャボット』から返る。
骨喰「自然言語処理部分がお客さまシステム
 の想定です」
三日月「これならいけるわ。じゃ、明日、よ
 ろしく……お前さ」
   三日月、骨喰の服を上から下まで見る。
骨喰「さすがにスーツで行きますよ」
三日月「そっか、じゃ、明日!」
   三日月、少し進んだところで振り返り、
三日月「そのPythonで作った奴って、イン
 ターネットからアクセスできんの?」
骨喰「……いえ、社内からだけですけど」
三日月「それ駄目だろ。明日の客先デモは社
 内ネットにアクセスなんてできねえぞ」
骨喰「え?」
三日月「社外からもアクセスできるようにし
 といて。チャチャッと。客んとこ朝10時だ
 から。遅れんなよ!」
   三日月、出ていく。骨喰、何か言いた
   げだが言えず時計を見る。11時30分。
   慌てた手付きで終電を調べる。12時。
骨喰「てつ……や?」
   骨喰、自分の服を見て、
骨喰「いや、駄目だ」
   骨喰キーボードを叩く。画面にHeroku
   が表示される。骨喰、爪を噛みながら
   画面を睨み、
骨喰「どうすりゃいいんだよ?」
   骨喰、画面を見てはクリックしていく、
   マウスを叩きつけ立ち上がり、大声で、
骨喰「結局どうすりゃいいんだって!」
   骨喰、肩で息をし、腰を下ろし『いろ
   いろワカラなくていいから取り急ぎ
   PythonのWebアプリをherokuに置き
   たいときにやること』と打ち込み、エ
   ンターキーを押す。

こうして骨喰くんがたどり着いたのがこの記事です。
取り急ぎPythonで書かれたWebアプリをherokuにデプロイする方法を説明します。

必要なもの

  • ローカルで動作するPytyonで書かれたWebアプリ(この記事ではhello_bottle.pyとします)
  • Git

hello_bottle.py(クリックで展開)
hello_bottle.py
import os
from bottle import route, run, template

@route('/hello/<name>')
def index(name):
    return template('<b>Hello {{name}}</b>!', name=name)

run(host="0.0.0.0", port=int(os.environ.get("PORT", 8080)))

を使いました。pip install bottleした後にpython hello_bottle.pyとすればWebアプリが起動します。
起動した状態で、ブラウザからhttp://localhost:8080/hello/sgigagaeruにアクセスすれば画面にHello sgigagaeru!と表示されます。

1. Procfileを作る

Procfile
web: python hello_bottle.py

Webアプリを起動するコマンドをProcfileに書きます。
web:のあとにWebアプリを起動するコマンドを書きます。
hello_bottle.pyと同じディレクトリに入れて下さい。

2. requirements.txtを作る

requirements.txt
bottle

必要なライブラリがある場合はrequirements.txtに書きます。
この記事の例ではbottleライブラリが必要なので、それを書きます。

3-0. Herokuアカウントを作る

Herokuのアカウントを持っていない場合はサインアップページから作成します。

3. Herokuアプリを作る

Herokuにログインするとダッシュボードが表示されます。
右上の「New」から「Create new app」を選んでアプリを作成します。

「Create new app」は右上にあります(クリックで画面イメージが出ます)
dashboard.heroku.com_auth_heroku_callback_code=8c453a6f-0230-4efe-b6c5-6b25baab9190.png
好きなアプリ名を付けます(クリックで画面イメージが出ます)dashboard.heroku.com_auth_heroku_callback_code=8c453a6f-0230-4efe-b6c5-6b25baab9190 (1).png

今回はアプリ名はsgigagaeruにしました。
アプリ名に.herokuapp.comを加えたURLで、デプロイしたWebアプリにアクセスできるようになります。今回の場合だとsgigagaeru.herokuapp.comです。

4. "Deploy using Heroku Git"にしたがってやれば完了

dashboard.heroku.com_apps_sgigagaeru_deploy_heroku-git.png
アプリ作成が終わるとこのページが表示されます。
下の方に"Deploy using Heroku Git"とあり、ここに書かれている通りにやると完了です。

4-1. Heroku CLIのインストール

インストールしていない場合は、画面の指示にしたがってインストールして下さい。

4-2. Heroku login

ログインがまだの場合はheroku loginと入力してログインします。

$ heroku login
heroku: Press any key to open up the browser to login or q to exit: 

上の内容が表示されたら、なにかキーを押して下さい。
ブラウザにHerokuのページが表示され、ログインを求められます。
ブラウザでログインすると、コマンドラインでのログインも完了になります。

4-3. Git

hello_bottle.pyのあるディレクトリに移動して下さい。
ファイル構成は下のようになっているはずです。

.
├── Procfile
├── hello_bottle.py
└── requirements.txt

あとはページの指示通りにGitコマンドを打っていけば完了です。

$ git init
$ heroku git:remote -a sgigagaeru
$ git add .
$ git commit -am "make it better"
$ git push heroku master

sgigagaeruは作成したアプリ名に変えて下さい。
https://sgigagaeru.herokuapp.com/hello/sgigagaeruにアクセスしてみましょう。
Hello sgigagaeru!と表示されます。

おわりに

《映画刀剣乱舞》は日本映画史に残すべき佳作だと思いました。

sgigagaeru
十数年ぶりにHTMLを書いてみたら、色んなことが変わっていて驚きました。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした