Type Here to Get Search Results !

무료 호스팅 파이썬과 flask를 이용하여 나의 웹페이지 만들기 - www.pythonanywhere.com

이 글에서는 www.pythonanywhere.com에서 파이썬과 flask(플라스크)를 이용해서 나만의 홈페이지를 만드는 방법에 대해서 설명합니다. 

  • www.pythonanywhere.com 가입하기
  • flask를 이용한 웹 앱 만들어서 배포하기
파이썬 플라스크로 무료 웹 호스팅하기 썸네일


www.pythonanywhere.com 가입하기


www.pythonanywhere.com는 flask와 python을 이용한 웹페이지를 생성하여 무료로 호스팅해주는 사이트입니다. 

물론 유료 플랜을 가입하는것과 무료로 사용하는 것은 차이가 있으나 테스트 용으로는 충분합니다. 그리고, 간단한 홈페이지를 운영하는 것도 가능합니다. 

https://kitle.xyz/post/61/

먼저 www.pythonanywhere.com에 signup을 하여 가입을 합니다. "Create a Beginner account" 버튼을 눌러서 가입하면 무료로 사용하실 수 있습니다. 

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


pythonanywhere bash 콘솔 진입

flask를 이용한 웹 앱 만들어서 배포하기


콘솔에 진입한 후 파이썬 가상환경을 만들어 줍니다. 여러 환경을 사용하는 경우 겹치지 않게 하려는 목적입니다.

01:18 ~ $ python3 -m venv myvenv

가상환경을 만드는 명령어 입니다. myvenv 는 가상환경 이름이며, 본인만의 다른 이름으로 하셔도 무관합니다. 다만, 아래에 따라하는 부분들에서 변경하신 이름으로 적용해야합니다. 


가상환경 생성 및 사용

가상환경이 정상적으로 생성되면 생성한 가상환경 이름의 디렉토리가 생성됩니다.
16:27 ~ $ ls

README.txt  eddy_venv  myvenv
정상적으로 생성된 경우 myvenv라는 디렉토리가 생성됩니다. .

아래와 같이 myvenv/bin의 activate를 source 명령으로 실행하여 가상환경으로 설정합니다.

source는 해당 가상환경을 사용하겠다는 의미의 명령어입니다. 환경 변수를 가상환경으로 맞춰줍니다.

16:31 ~ $ ls myvenv/bin/
Activate.ps1  activate  activate.csh  activate.fish  pip  pip3  pip3.10  python  python3  python3.10
source myvenv/bin/activate
16:32 ~ $ source myvenv/bin/activate
(myvenv) 16:33 ~ $ pip3 install flask

Bash 메뉴로 진입했다면 항상 source 명령어로 가상환경으로 설정 후 사용해야합니다. 

flask 프레임워크 설치

그 다음 flask 프레임워크를 설치합니다. 해당 가상환경안에 flask 패키지를 설치하기 위해서 pip를 이용해서 flask를 설치합니다. 명령어는 다음과 같습니다.
(myvenv) 16:33 ~ $ pip3 install flask
Looking in links: /usr/share/pip-wheels
Collecting flask
  Downloading Flask-2.3.2-py3-none-any.whl (96 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 96.9/96.9 KB 1.8 MB/s eta 0:00:00
Collecting Werkzeug>=2.3.3
  Downloading Werkzeug-2.3.4-py3-none-any.whl (242 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 242.5/242.5 KB 542.8 kB/s eta 0:00:00
Collecting itsdangerous>=2.1.2
  Downloading itsdangerous-2.1.2-py3-none-any.whl (15 kB)
Collecting Jinja2>=3.1.2
  Downloading Jinja2-3.1.2-py3-none-any.whl (133 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 133.1/133.1 KB 554.4 kB/s eta 0:00:00
Collecting blinker>=1.6.2
  Downloading blinker-1.6.2-py3-none-any.whl (13 kB)
Collecting click>=8.1.3
  Downloading click-8.1.3-py3-none-any.whl (96 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 96.6/96.6 KB 260.4 kB/s eta 0:00:00
Collecting MarkupSafe>=2.0
  Downloading MarkupSafe-2.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (25 kB)
Installing collected packages: MarkupSafe, itsdangerous, click, blinker, Werkzeug, Jinja2, flask
Successfully installed Jinja2-3.1.2 MarkupSafe-2.1.2 Werkzeug-2.3.4 blinker-1.6.2 click-8.1.3 flask-2.3.2 itsdangerous-2.1.2

위와같이 나타나면 관련된 패키지들과 함께 Flask가 설치됩니다. 
(myvenv) 16:35 ~ $ mkdir FlaskSite
(myvenv) 16:36 ~ $ ls
FlaskSite  README.txt  eddy_venv  myvenv
(myvenv) 16:36 ~ $ cd FlaskSite/
(myvenv) 16:36 ~/FlaskSite $ ls
(myvenv) 16:36 ~/FlaskSite 

글 위와 같이 FlaskSite라는 디렉토리를 하나 만듭니다. 이 디렉토리에 웹페이지들을 넣을 계획입니다. 

완료되면 왼쪽 상단에 bash 버튼을 눌러서 dashboard로 나옵니다.

다음으로 Web 메뉴로 이동합니다.

Add a new web app을 눌러 flask를 이용한 신규 web app을 생성합니다.


원하는 이름으로 생성합니다. 
프로젝트는 Custom setting 으로 선택하여 진행합니다.

이렇게 생성된 사이트는 <username>.pythonanywhere.com 으로 추후 접속이 가능합니다.

ex> lsw0075.pythonanywhere.com

다른 도메인으로 연결을 위해서는 유료로 업그레이드 하시면 됩니다. 

WSGI configuration file 수정


다음으로는 Web 메뉴를 통해 수정을 해야 합니다. 

Code: 부분에 

"WSGI configuration file:"을 다음과 같이 수정합니다.

import sys

path = '/home/YOURNAME/mysite'

if path not in sys.path:

   sys.path.insert(0, path)

from app import app as application

아래와 같은 메시지가 나타납니다. 주소 확인 후 next를 누릅니다. 

Your web app's domain name

Your account doesn't support custom domain names, so your PythonAnywhere web app will live at lsw0075.pythonanywhere.com.

Want to change that? Upgrade now!

Otherwise, just click "Next" to continue.

flask가 아닌 manual configuration으로 진행합니다. 


Web 설정 

Web으로 돌아와서 가상 환경 "Virtualenv:"을 설정 합니다. 

이전에 생성한 가상환경 이름을 입력합니다.

/home/<yourname>/myvenv 



web에서 가상환경 수정 완료 화면


Web app 만들기

이제 자신의 web app을 만들어야 합니다. 

다시 bash console로 들어갑니다. 해당 console에서 이전에 만든 FlaskSite 디렉토리에 다음의 파일을 app.py로 생성합니다. 

from flask import Flask

app = Flask(__name__)

@app.route('/')

def hello():
    return 'Hello, World!'

if __name__ == '__main__':
    app.run()

다음과 같이 웹페이지가 생성되어 해당 주소로 접속하면 정상적으로 페이지가 보입니다. 

플라스크를 통해 웹 앱 배포후 접속 확인