Flask 무료 호스팅 - Flask mulyo hoseuting

일반적인 회사나 규모있는 시스템을 운영하려면 cafe24, AWS 및 다양한 호스팅 업체를 이용하겠지만

python의 경우는 아주 감사하게도 무료로 호스팅 해주는 사이트가 있습니다.

물론 웹서버나 기타 추가적인 동작은 제한적이지만, 가볍게 쓸 웹 앱에는 강력추천합니다.

www.pythonanywhere.com 이며 단점하나는 3개월에 한번씩 눌러줘야 연장됩니다. (비용추가는 없음)

나중에 쓰시다가 유료로 업글하시거나 다른 서비스로 갈아타셔도 됩니다.

저같은 경우는 마음에 들어서 유료 서비스로 이용중입니다.

서론이 길었네요 본론으로 들어가서 빠르게 pythonanywhere 사이트를 이용해 웹 서버를 구축해보겠습니다.

가입 및 메뉴진입

1. www.pythonanywhere.com 회원가입 쉬우니까 빠르게 가입하고 이메일 인증 하시면 됩니다.

2. 로그인 > Consoles > Start a new Console > other: Bash 메뉴로 진입해줍니다.

01:18 ~ $

가상환경 만들기 및 패키지 설치

이런식으로 콘솔에 진입했으면 파이썬 가상환경을 만들어 줍니다. 여러 환경 이용시 겹치지 않게 하려는 목적입니다.

01:18 ~ $ python3 -m venv myvenv

가상환경을 만드는 명령어 입니다. myvenv 는 가상환경 이름인데 특별한 경우가 아니면 동일하게 만들고 따라해주세요.

가상환경 생성 확인

01:19 ~ $ ls

README.txt  myvenv

정상적으로 만들어졌으면 myvenv 라는 폴더가 생깁니다.

가상환경 진입

01:21 ~ $ source myvenv/bin/activate

(myvenv) 01:21 ~ $ 

Flask 무료 호스팅 - Flask mulyo hoseuting

source 명령어로 가상환경 진입이 가능합니다. 성공시 () 안에 현재 진입한 가상환경 명령어가 표시됩니다.

Bash 메뉴로 진입했다면 늘 저 명령어로 가상환경에 진입한 후 사용해주세요. 명령어는 꼭 외우세요.

그다음 flask 프레임워크를 이용할 것이기 때문에 가상환경안에 flask 패키지를 설치해 줍니다. 명령어는 다음과 같습니다.

(myvenv) 01:23 ~ $ pip3 install flask

조금 기다리면 아래와 같이 나타납니다.

...중략...

Installing collected packages: click, itsdangerous, Werkzeug, MarkupSafe, Jinja2, flask

Successfully installed Jinja2-2.11.2 MarkupSafe-1.1.1 Werkzeug-1.0.1 click-7.1.2 flask-1.1.2 itsdangerous-1.1.0

연관된 패키지들도 같이 설치 되었네요. 크게 신경쓸 것은 없습니다.

실제 프로젝트 파일을 넣을 폴더를 하나 만들어 줍니다. 루트에다 할 수 있겠지만 깔끔한 구분은 관리의 기본입니다.

(myvenv) 01:23 ~ $ mkdir mysite

명령어로 폴더까지 만든 후 홈버튼을 눌러 bash를 빠져 나옵니다.

Web 메뉴 진입 후 설정하기

이번엔 Web 메뉴로 진입합니다.

Add a new web app 으로 진입합니다.

원하는 이름으로 선택 후 만드시고, 프로젝트는 flask가 아닌 여기서는 설명을 Custom setting 으로 선택하여 진행합니다.

USERNAME.pythonanywhere.com 으로 추후 접속이 가능합니다.

다른 도메인으로 연결을 위해서는 비용을 추가하면 됩니다.

그다음으로는 Web 메뉴를 눌러 수정을 하겠습니다.

Code: 부분에 

WSGI configuration file: 을 수정합니다.

전부다 지우시고 

import sys

path = '/home/YOURNAME/mysite'

if path not in sys.path:

   sys.path.insert(0, path)

from flask_app import app as application

을 입력합니다.  YOURNAME 부분은 만드신 걸로 바꾸시고 저장합니다.

다시 Web 탭으로 돌아옵니다.

Virtualenv: 부분을 설정해줍니다.

가상환경을 아까 만들었으므로 그대로 입력해주면 됩니다.

/home/YOURNAME/myvenv 

로 수정해주세요.

정상적으로 마쳤다면 다음과 같이 표시될겁니다.

Flask 무료 호스팅 - Flask mulyo hoseuting

서버 구동을 위한 파일 생성

그다음 서버 구동을 위한 파일을 만들어 보겠습니다.

메모장을 켜시고 다음과 같은 파일을 만들어 주세요.

from flask import Flask, request, make_response

app = Flask(__name__)

@app.route('/')

def home():

    return 'Hello, World!'

if __name__ == '__main__':

    app.run()

저장하실 파일 이름은 flask_app.py 입니다.

그다음 Files 탭으로 이동해주세요.

업로드할 위치는 /home/YOURNAME/mysite 에 해당 파일을 업로드 해주세요.

파일명을 누르면 직접 수정도 가능합니다.

웹 브라우저에서 접속해보기

자 이제 웹사이트로 접속해 볼까요?

웹 브라우저에 YOURNAME.pythonanywhere.com 을 입력해 접속해 봅니다.

Flask 무료 호스팅 - Flask mulyo hoseuting

다음과 같이 떴다면 성공!

이제 인터넷만 있으면 언제든 접속가능합니다.

오류가 있는경우 RELOAD 버튼을 통해 웹을 다시 불러와보시고 오류메세지가 나온다면 화면의 오류로그를 보고 오류를 해결하면서 해결해보길 바랍니다. 

참 쉽죠?

참고사이트 :  https://help.pythonanywhere.com/pages/Flask/ 

HoLoLo

Web/Flask

4] Flask 웹 앱 무료 배포하기 - pythonanywhere

hololo 2020. 8. 6. 03:03

1. 계기

처음엔 나도 이게 뭔지 몰랐는데, 개발 대회를 준비 중에 찾은 사이트이다.

나의 현재 상황(?), 원하는 것은
- 대회에서 다른 사람들에게 링크를 공유하여 페이지를 배포하고 싶었음
- 무료여야 함
- 오래걸리지 않아야 함
- 현재 배포하려는 페이지는 무겁지 않음(용량이 크지 않음)
- 데이터베이스를 일단 쓰지 않는 웹 페이지
이다.

그래서 처음엔 git deploy를 사용하려했다...
근데 git deploy는 지난 학기에 전공과목에서 딱 한번만 써봤고, React 프로젝트를 배포하는 것밖에 안해봐서
단기간에 시도하기엔 리스크가 컸다!! 두둥

그래서 선택한 것이 바로바로
pythonanywhere이다.

2. PythonAnywhere

pythonAnywhere은 python에 특화된 웹 호스팅 서비스이다.

[장점]
- 소규모 application을 무료로 지원가능
- 데이터 베이스도 제공
- 웹을 통해 한번에 다룰 수 있음

[단점]
- 무료의 경우, 하나의 계정에 하나의 webapp만 가능
- 2개의 콘솔 창만 웹으로 다룰 수 있음
- 용량이 512.08MB

3. 가입

https://www.pythonanywhere.com/ 

Host, run, and code Python in the cloud: PythonAnywhere

Batteries included With Python versions 2.7, 3.3, 3.4, 3.5 and 3.6, and all the goodies you normally find in a Python installation, PythonAnywhere is also preconfigured with loads of useful libraries, like NumPy, SciPy, Mechanize, BeautifulSoup, pycrypto,

www.pythonanywhere.com

사이트에 접속한 후에, 위 메뉴에서 "pricing & signup"을 클릭한다.
나는 무료버전을 사용할 것이기에 "create a Beginner account"를 클릭했다.

Flask 무료 호스팅 - Flask mulyo hoseuting

누르면 아래와 같이 계정을 생성할 수 있는데,
여기서 중요한 것은 자신이 도메인 이름으로 사용하고 싶은 것을 username으로 정하면 된다.
나중에 username.pythonanywhere.com으로 웹 사이트가 만들어진다!!

Flask 무료 호스팅 - Flask mulyo hoseuting

4. 실행

로그인 후에 상단메뉴 중 "web"을 클릭한 후, "Add a new web app"을 누른다.

Flask 무료 호스팅 - Flask mulyo hoseuting

next를 누르면, 아래와 같이 뜬다.

Flask 무료 호스팅 - Flask mulyo hoseuting

난 Flask를 쓸 거니까, Flask를 눌러주었다.
다음엔 아래와 같이 python version을 선택하는 창이 뜨는데, 현재 로컬에 깔려있는 python의 버전이 3.6이라서 똑같이 3.6을 선택했다.
로컬 cmd에서 python --version을 입력하면 버전을 확인할 수 있다.

Flask 무료 호스팅 - Flask mulyo hoseuting
Flask 무료 호스팅 - Flask mulyo hoseuting

다음으로 아래와 같이 창이 뜨는데 그냥 next를 누르면 된다.

Flask 무료 호스팅 - Flask mulyo hoseuting


위에서 mysite라는 폴더를 사용하기로 했으므로, mysite폴더 안에 기존 로컬의 파이썬 파일을 업로드하거나 폴더를 생성시켜줘야 한다.
Files 탭에 들어가서 mysite라는 폴더에 원래의 실행파일을 넣어준다.
(python ~.py 하던 그 파일)

Flask 무료 호스팅 - Flask mulyo hoseuting

실행파일의 이름은 무조건 flask_app.py로 설정해주어야 한다.
나의 경우 routes.py여서 이름을 바꿔주었다.

Flask 무료 호스팅 - Flask mulyo hoseuting

기존의 Flask앱의 구조처럼 만들어 준 후에, flask_app.py도 업로드하고
로컬에 있던 static파일들과 templates파일들을 모두 업로드 해주었다.

5. 웹 서비스 시작

파일 업로드를 다 완료했다면,

Flask 무료 호스팅 - Flask mulyo hoseuting

Reload를 눌러준 뒤에, 링크를 눌러 페이지가 열리는지 확인한다.

Flask 무료 호스팅 - Flask mulyo hoseuting

야호 잘된다

이제 팀원들도 내 페이지를 실시간으로 참고할 수 있고,
나중에 대회에서 링크만 제출을 해도 편할 것 같다.

References

-https://seyeon-hello.tistory.com/2
-https://m.blog.naver.com/21ahn/221831187465