Heroku, Flask, Python, Git으로 업로드하는 방법 (그 ①)
Heroku, Flask, Python에 대해, Progate나 닷 인스톨, Qiita등에서 한가지 학습했으므로, 정리해 본다
(1) 작업 디렉토리 작성
(2) 가상 환경 설정
(3) 필요한 프레임 워크와 WEB 서버 설치
(4) Flask 파일을 Python으로 작성
(5) Flask 파일을 실행해보기
(6) Heroku에 배포
① Heroku에 계정 등록하기
② Homebrew로 Heroku 설치
③Git 준비
④ Heroku에 앱 만들기
⑤ 로컬 앱과 Heroku 앱을 연결
⑥ Heroku에 배포하는 데 필요한 파일 만들기
⑦ Heroku에 배포하기
(7) 에러 대응
① heroku ps:scale web=1로 정상이 되는 케이스
② heroku ps:scale web=1로 정상이 되지 않는 케이스
(8) 파일 업데이트
(1) 작업 디렉토리 작성
데스크탑상에서 언제나 작업하고 있으므로, 이번에도 데스크탑상에 디렉토리를 설치했다.
먼저 Mac 터미널을 시작하고 cd desktop을 입력한 다음 mkdir myproject를 입력하여 데스크톱에 my-project 디렉토리를 만듭니다.
(2) 가상 환경 설정
그런 다음 터미널에서 cd myproject로 디렉토리 my-project로 이동합니다.
Python의 venv라는 가상 환경을 제공하는 기능을 사용하여 로컬로 개발 환경을 설정합니다.
가상 환경은 python -m venv ●●●로 설정. ●●●는 임의의 명칭으로 좋지만, 임의의 서브 디렉토리가 작성되어 서브 디렉토리 내에 가상 환경 파일이 작성된다. 그러나 이번에는 python -m venv .로 myproject 바로 아래에 가상 환경 파일을 만들었습니다. 서브 디렉토리 아래에 가상 환경 파일을 작성하면, 후술하는 Heroku에의 배치시에 왠지 에러가 발생했기 때문에, 바로 아래에 작성했다.
python3 -m venv .
그런 다음 가상 환경을 활성화하기 위해 다음과 같이 입력합니다.
source bin/activate
덧붙여서 가상 환경을 무효화하는 경우는 다음과 같이 입력한다.
deactivate
(3) 필요한 프레임 워크와 WEB 서버 설치
그런 다음 프레임 워크를 설치합니다.
pip install flask
그리고 WEB 서버를 설치한다.
pip install gunicorn
(4) Flask 파일을 Python으로 작성
활성화한 가상 환경에서 다음과 같이 입력하여 my-project 내에 실행 파일을 만듭니다. 이번에는 hello.py라는 파일을 작성.
touch hello.py
그런 다음 hello.py를 열고 다음과 같이 입력합니다.
덧붙여 app.run()는 이대로라면 app.run(debug=false)가 되어, 디버그 모드는 오프의 상태. 프로덕션 환경에서는 debug=true라고 하면 위험이 많기 때문에 디폴트인 채로 했다.
자세한 것은 이하를 참고로 하였다.
https://www.subarunari.com/entry/2018/03/10/ 지금은 _Flask_에 대해 정리하기_~Debugger~
hello.py# -*- coding: utf-8 -*-
# 日本語を使う場合にコメントアウトでも必要
# flaskなどの必要なライブラリをインポート
from flask import Flask
# 自分の名称を app という名前でインスタンス化
app = Flask(__name__)
@app.route('/')
def index():
return 'Hello World!'
#app.run()はデフォルトではfalseが設定されている
if __name__ == '__main__':
app.run()
(5) Flask 파일을 실행해보기
다시 터미널에서 조작한다.
작성한 hello.py가 제대로 움직일지 어떨지 로컬 환경에서 시험해 본다.
터미널에서 다음을 입력합니다.
python3 hello.py flask run
그러면 다음과 같이 표시됩니다.
* Serving Flask app "hello" (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
127.0.0.1 - -
브라우저에서 상기 부분의 htp://127.0.0.1:5000/에 액세스하면 다음과 같이 표시된다.
이것으로 로컬 환경에서는 정상적으로 움직이는 것을 확인할 수 있었다.
control + c로 터미널 입력 모드로 돌아갑니다.
Heroku, Flask, Python, Git으로 업로드하는 방법 (그 ②)
Reference
이 문제에 관하여(Heroku, Flask, Python, Git으로 업로드하는 방법 (그 ①)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kaonashikun/items/8ed2aa6334141e6b2db5
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
데스크탑상에서 언제나 작업하고 있으므로, 이번에도 데스크탑상에 디렉토리를 설치했다.
먼저 Mac 터미널을 시작하고 cd desktop을 입력한 다음 mkdir myproject를 입력하여 데스크톱에 my-project 디렉토리를 만듭니다.
(2) 가상 환경 설정
그런 다음 터미널에서 cd myproject로 디렉토리 my-project로 이동합니다.
Python의 venv라는 가상 환경을 제공하는 기능을 사용하여 로컬로 개발 환경을 설정합니다.
가상 환경은 python -m venv ●●●로 설정. ●●●는 임의의 명칭으로 좋지만, 임의의 서브 디렉토리가 작성되어 서브 디렉토리 내에 가상 환경 파일이 작성된다. 그러나 이번에는 python -m venv .로 myproject 바로 아래에 가상 환경 파일을 만들었습니다. 서브 디렉토리 아래에 가상 환경 파일을 작성하면, 후술하는 Heroku에의 배치시에 왠지 에러가 발생했기 때문에, 바로 아래에 작성했다.
python3 -m venv .
그런 다음 가상 환경을 활성화하기 위해 다음과 같이 입력합니다.
source bin/activate
덧붙여서 가상 환경을 무효화하는 경우는 다음과 같이 입력한다.
deactivate
(3) 필요한 프레임 워크와 WEB 서버 설치
그런 다음 프레임 워크를 설치합니다.
pip install flask
그리고 WEB 서버를 설치한다.
pip install gunicorn
(4) Flask 파일을 Python으로 작성
활성화한 가상 환경에서 다음과 같이 입력하여 my-project 내에 실행 파일을 만듭니다. 이번에는 hello.py라는 파일을 작성.
touch hello.py
그런 다음 hello.py를 열고 다음과 같이 입력합니다.
덧붙여 app.run()는 이대로라면 app.run(debug=false)가 되어, 디버그 모드는 오프의 상태. 프로덕션 환경에서는 debug=true라고 하면 위험이 많기 때문에 디폴트인 채로 했다.
자세한 것은 이하를 참고로 하였다.
https://www.subarunari.com/entry/2018/03/10/ 지금은 _Flask_에 대해 정리하기_~Debugger~
hello.py# -*- coding: utf-8 -*-
# 日本語を使う場合にコメントアウトでも必要
# flaskなどの必要なライブラリをインポート
from flask import Flask
# 自分の名称を app という名前でインスタンス化
app = Flask(__name__)
@app.route('/')
def index():
return 'Hello World!'
#app.run()はデフォルトではfalseが設定されている
if __name__ == '__main__':
app.run()
(5) Flask 파일을 실행해보기
다시 터미널에서 조작한다.
작성한 hello.py가 제대로 움직일지 어떨지 로컬 환경에서 시험해 본다.
터미널에서 다음을 입력합니다.
python3 hello.py flask run
그러면 다음과 같이 표시됩니다.
* Serving Flask app "hello" (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
127.0.0.1 - -
브라우저에서 상기 부분의 htp://127.0.0.1:5000/에 액세스하면 다음과 같이 표시된다.
이것으로 로컬 환경에서는 정상적으로 움직이는 것을 확인할 수 있었다.
control + c로 터미널 입력 모드로 돌아갑니다.
Heroku, Flask, Python, Git으로 업로드하는 방법 (그 ②)
Reference
이 문제에 관하여(Heroku, Flask, Python, Git으로 업로드하는 방법 (그 ①)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kaonashikun/items/8ed2aa6334141e6b2db5
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
python3 -m venv .
source bin/activate
deactivate
그런 다음 프레임 워크를 설치합니다.
pip install flask
그리고 WEB 서버를 설치한다.
pip install gunicorn
(4) Flask 파일을 Python으로 작성
활성화한 가상 환경에서 다음과 같이 입력하여 my-project 내에 실행 파일을 만듭니다. 이번에는 hello.py라는 파일을 작성.
touch hello.py
그런 다음 hello.py를 열고 다음과 같이 입력합니다.
덧붙여 app.run()는 이대로라면 app.run(debug=false)가 되어, 디버그 모드는 오프의 상태. 프로덕션 환경에서는 debug=true라고 하면 위험이 많기 때문에 디폴트인 채로 했다.
자세한 것은 이하를 참고로 하였다.
https://www.subarunari.com/entry/2018/03/10/ 지금은 _Flask_에 대해 정리하기_~Debugger~
hello.py# -*- coding: utf-8 -*-
# 日本語を使う場合にコメントアウトでも必要
# flaskなどの必要なライブラリをインポート
from flask import Flask
# 自分の名称を app という名前でインスタンス化
app = Flask(__name__)
@app.route('/')
def index():
return 'Hello World!'
#app.run()はデフォルトではfalseが設定されている
if __name__ == '__main__':
app.run()
(5) Flask 파일을 실행해보기
다시 터미널에서 조작한다.
작성한 hello.py가 제대로 움직일지 어떨지 로컬 환경에서 시험해 본다.
터미널에서 다음을 입력합니다.
python3 hello.py flask run
그러면 다음과 같이 표시됩니다.
* Serving Flask app "hello" (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
127.0.0.1 - -
브라우저에서 상기 부분의 htp://127.0.0.1:5000/에 액세스하면 다음과 같이 표시된다.
이것으로 로컬 환경에서는 정상적으로 움직이는 것을 확인할 수 있었다.
control + c로 터미널 입력 모드로 돌아갑니다.
Heroku, Flask, Python, Git으로 업로드하는 방법 (그 ②)
Reference
이 문제에 관하여(Heroku, Flask, Python, Git으로 업로드하는 방법 (그 ①)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kaonashikun/items/8ed2aa6334141e6b2db5
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
touch hello.py
# -*- coding: utf-8 -*-
# 日本語を使う場合にコメントアウトでも必要
# flaskなどの必要なライブラリをインポート
from flask import Flask
# 自分の名称を app という名前でインスタンス化
app = Flask(__name__)
@app.route('/')
def index():
return 'Hello World!'
#app.run()はデフォルトではfalseが設定されている
if __name__ == '__main__':
app.run()
다시 터미널에서 조작한다.
작성한 hello.py가 제대로 움직일지 어떨지 로컬 환경에서 시험해 본다.
터미널에서 다음을 입력합니다.
python3 hello.py flask run
그러면 다음과 같이 표시됩니다.
* Serving Flask app "hello" (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
127.0.0.1 - -
브라우저에서 상기 부분의 htp://127.0.0.1:5000/에 액세스하면 다음과 같이 표시된다.
이것으로 로컬 환경에서는 정상적으로 움직이는 것을 확인할 수 있었다.
control + c로 터미널 입력 모드로 돌아갑니다.
Heroku, Flask, Python, Git으로 업로드하는 방법 (그 ②)
Reference
이 문제에 관하여(Heroku, Flask, Python, Git으로 업로드하는 방법 (그 ①)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kaonashikun/items/8ed2aa6334141e6b2db5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)