안녕하세요. 오늘은 pythonanywhere를 이용해서 파이썬 flask 웹 프레임워크를 배포하는 과정을 설명해드리겠습니다 ~ 장고는 관련 게시물이 많은데, 플라스크는 찾기 어렵더라구요. 그래서 간단하게 정리해보았습니다 :)
1. pythonanywhere 소개
먼저! pythonanywhere를 처음 접해시는 분들을 위해 소개하는 시간을 가져보겠습니다 ^^
pythonanywhere은 python언어의 특화된 웹 호스팅 서비스 인데요. pythonanywhere는 방문자가 많지 않은 소규모 application들에게 무료 서비스를 제공하는데 이게 가장 큰 장점인 것 같습니다! 뿐만 아니라 데이터베이스도 제공하고 있어요. 마지막으로 웹을 통해 한번에 다룰 수 있어서 굉장히 편합니다~ (이전에 aws를 통해서 ec2, rds로 웹 호스팅을 해본적이 있는데, 초보자 입장에서 신경써야할 부분들이 많더라구요 비용 걱정도 들구요.)
하지만 단점도 물론 있습니다! 무료 서비스를 이용할 경우, 하나의 계정에 하나의 webapp만 가능합니다. 그리고 콘솔 창을 웹으로 다뤄야 하는데 이 콘솔창을 2개만 제한적으로 띄울 수 있어요. (이 점이 개인적으로 불편했어요) 마지막으로 용량이 512.08MB 정도로 다소 제한적입니다.
2. pythonanywhere 가입 방법
자 이제 pythonanywhere 가입 방법을 소개하겠습니다 !!
https://www.pythonanywhere.com/
먼저 사이트를 접속한 후, 맨 위 메뉴 중 "pricing & signup" 클릭합니다. 그리고 우리는 무료버전을 사용해볼 계획이므로 아래 "create a beginner account"라는 파란색 버튼을 클릭해주세요!
그러면 아래와 같이 계정을 생성할 수 있습니다! 여기서 username을 자신이 원하는 도메인 이름으로 설정하는 것이 좋아요! 나중에 (username).pythonanywere.com 으로 웹 사이트가 만들어 집니다.
3. pythonanywhere 실행 방법
자 이제 가입을 완료했으면 실행해보겠습니다 !!!
로그인 후 상단 메뉴 중 "web"을 클릭합니다 그리고 web 시작하기를 눌러주세요. 그럼 아래와 같이 web framework중 Flask를 선택합니다
Flask 선택 후, python버전을 선택할 수 있는데, 저는 3.6을 선택했습니다
이제 상단 메뉴중 "dashboard"탭을 클릭합니다. 그리고 new console에 있는 "$Bash"를 선택해 주세요
bash창에 우리는 이미 저장된 flask 소스코드를 git clone합니다
$ git clone https://~
그리고 clone한 디렉토리로 이동합니다. 여기서 저는 실행시킬 파일이름을 "flask_app.py"로 변경하였습니다. 그리고 가상환경을 생성하고 실행합니다
$ virtualenv --python=python3.6 venv
$ source venv/bin/activate
여기서 우리는 각자의 python파일에 필요한 모듈들을 모두 설치해줘야해요.
$ pip install ~
필요한 모듈들을 다 설치된 것 같은지 확인하고 싶으면 아래와 같이 실행시켜보면서 확인해보세요!
$ python flask_app.py
아무 에러 없이 잘 돌아가나요? 그러면 이제 다음 단계로 넘어갑니다 !!!!
4. pythonanywhere 호스팅 과정
1) 돌아갈 코드 위치 설정
다시 상단바 메뉴중 web 탭을 클릭합니다. source 코드의 위치를 다음과 같이 "/home/아이디/clone한 폴더명"으로 설정합니다. working directory는 "/home/아이디"로 설정합니다.
2) WSGI configuration file 작성
그리고 WSGI configuration file을 클릭합니다. 그리고 다음과 같이 수정합니다.
import sys
path = '/home/아이디/clone한 폴더명'
if path not in sys.path:
sys.path.insert(0, path)
from flask_app import app as application
3) Virtualenv 설정
다음으로 가상환경을 설정해줍니다. "/home/아이디/clone한 폴더명/venv" (여기서 venv는 아까 bash창에서 설정한 가상환경이름입니다.)
4) Static files 설정
마지막으로 css파일과 js파일과 같은 정적 파일의 위치를 직접 url을 지정해 맵핑해주는 작업이 필요한데요. 이 작업을 진행해야 css, js파일이 안깨지고 잘 실행시킬 수 있습니다. 이 지정한 url을 소스코드에서 다 바꿔줘야 합니다.
기존 코드가 아래와 같았다면,
<script src="./statics/js/jquery-3.1.1.js"></script>
이와 같이 변경된 url로 수정해야 합니다.
<script src="/static/js/jquery-3.1.1.js"></script>
자 이렇게 모든 작업이 끝났다면, 다음과 같은 순서로 진행해 주시면 됩니다!
5. 데이터베이스 연동
상단 메뉴바 중 "Database"를 클릭한 후, 생성할 database 이름을 입력 후 "create" 버튼을 눌러줍니다.
그리고 자신이 만든 데이터베이스 콘솔로 접근하여 작업하시면 됩니다!
소스코드에서 연동하는 방법은 다음과 같습니다. 저는 flask_mysqldb를 install했어요.
from flask_mysqldb import MySQL
mysql = MySQL()
app.config['MYSQL_HOST'] = '아이디.mysql.pythonanywhere-services.com'
app.config['MYSQL_USER'] = '아이디'
app.config['MYSQL_PASSWORD'] = '비밀번호'
app.config['MYSQL_DB'] ='아이디$membership'
mysql=MySQL(app)
끝 ~ !
비교적 간단한 방법으로 웹 호스팅을 마쳤습니다
'IT > web, hosting' 카테고리의 다른 글
nginx로 로드밸런싱 설정하기 (0) | 2023.12.13 |
---|---|
AWS EC2에서 RDS 연동후 Flask 적용 (0) | 2020.02.22 |
AWS EC2에서 Flask 실행 (0) | 2020.02.11 |