don't stop believing

Flask로 Static Web Server 구성하기 본문

Python/Flask

Flask로 Static Web Server 구성하기

Tongchun 2018. 11. 26. 15:44

갑자기 테스트할 일이 생겨서 Static Web Site의 서버를 띄울일이 생겼습니다.

간단하게 Flask로 만들었습니다.


환경은 Ubuntu 입니다.

앞서 말한것과 같이 목적은 Static Web Site를 하나 띄울 서버를 후딱 만드는 것입니다.


Ubuntu 버전부터 확인하고 가겠습니다.

$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 18.04.1 LTS
Release:	18.04
Codename:	bionic

Python을 설치하겠습니다. 버전은 3.6으로 하겠습니다. (Ubuntu 18.04.1에는 python 3.6.7이 기본으로 설치되어 있습니다.)

pip과 python 개발에 필요한 Package도 설치하구요.

마지막으로 pip을 업데이트 해줍니다.

$ sudo apt-get install python3 $ sudo apt-get install python3-pip python3-dev build-essential $ sudo pip3 install --upgrade pip

이제 pip으로 Flask를 설치합니다.

$ sudo pip install Flask

Flask Module이 설치되었는지 확인해 봅니다.

python의 -c 플래그를 사용해 flask module을 import 시키고 version을 확인할 수 있습니다.

$ python3 -c "import flask; print(flask.__version__)"
1.0.2

이제 시작입니다.

Static Web Site로 사용할 Flask 구조를 잡아줍니다.

$ sudo mkdir -p ./flask_app/testWeb/static
$ sudo mkdir -p ./flask_app/testWeb/templates
$ sudo touch ./flask_app/testWeb/__init__.py

./flask_app 으로 이동해 구조를 확인해 줍니다.

$ cd flask_app/
$ tree
.
└── testWeb
    ├── __init__.py
    ├── static
    └── templates

tree 가 설치되어 있지 않다면 sudo apt-get install tree 로 설치합니다.


static 폴더로 이동해 index.html 파일을 만들고 html 형태의 hello! Tongchun를 작성해 봄니다.

$ sudo vim ./testWeb/static/index.html

vim 이 설치되어 있지 않다면 sudo apt-get install -y vim으로 설치해 줍니다.

<html>
	<head>
		<title></title>
	</head>
	<body>
		<h1>Hello Tongchun!</h1>
	</body>
</html>

이번에는 flask 실행 파일을 만들어 줍니다.

app_start.py 파일을 testWeb 폴더 안에 만들어 줍니다.

from flask import Flask, request, redirect, url_for, send_from_directory, render_template
 
app = Flask(__name__)
app.debug = True
 
# Routes
@app.route('/', methods=['GET'])
def root():
    return app.send_static_file('index.html')
 
@app.route('/')
def static_prox(path):
    return app.send_static_file(path)
 
if __name__ == "__main__":
    app.run(host='0.0.0.0', port=80, threaded=True)

전체 Flask 구조는 아래와 같습니다.

$ cd flask_app/
$ tree
.
└── testWeb
    ├── app_start.py
    ├── __init__.py
    ├── static
    │   └── index.html
    └── templates

이제 실행해 보겠습니다.

$ sudo python app_start.py


이제 브라우저를 열고 http://localhost 또는 서버 http://<서버 IP>를 입력해 static site에 접속해 봅시다.

잘 뜨네요. 

이제 javascript와 html로 테스트용 static site를 개발할 수 있습니다.


Comments