늒네 기록

[flask] 시작하기 본문

서버 공부 기록/python flask

[flask] 시작하기

jaeha lee 2020. 9. 27. 00:44

간단한 웹서버를 만들어보기 위해서 몇 가지 대안들을 보던 중 flask가 눈에 들어와서 한 번 시도해보기로 했다. flask의 helloworld 같은 예제들부터 따라서 만들어보는 것이 좋을것 같아 찾아보니 한국어로 된 도움말 documentation이 준비되어 있었고, 특히 빠르게 시작하기에 있는 내용을 그대로 따라해보면 기초적인 서버를 만드는 것부터 시작할 수 있어서 좋았다.

 

빠르게 시작하기 링크의 앞부분에 flask를 설치하지 않았으면 설치하는 것부터 시작하라며 다른 페이지 링크를 걸어주는데, 해당 링크에는 virtualenv를 활용하는 방법도 같이 자세히 설명되어 있다. 해당 내용에 관심 있는 개발자라면 같이 보는 것도 좋지만, 굳이 따라하지 않아도 작동에는 큰 문제가 없으니 아래와 같이 로컬에 flask 패키지를 설치하는 것도 괜찮다.

1
$ pip3 install flask
cs

혹은, 본인 개발 환경에 따라 pip으로 설치해도 된다. 이렇게 하여 flask가 설치되었으면, 아래와 같은 코드를 짠다.

1
2
3
4
5
6
7
8
9
10
11
# hello.py
 
from flask import Flask
app = Flask(__name__)
 
@app.route('/')
def hello_world():
    return 'Hello World!'
 
if __name__ == '__main__':
    app.run()
cs

이와 같이 hello.py라는 파일을 만들고, 해당 파일이 있는 경로에 가서 python hello.py 로 실행해주면 로컬 환경에 서버 올리기가 끝. bash 창에서 해당 파일을 실행하니 다음과 같은 메세지가 뜬다.

1
2
3
4
5
6
7
$ py hello.py
 * 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)
cs

메세지에서 이야기해준 대로 웹 브라우저에서 http://127.0.0.1:5000/ 주소로 들어가면 위의 코드에서 route('/')가 담당하고 있는 경로로 들어간 것이 되어 hello_world() 함수가 실행되고, 이에 따라 'Hello World!' 값이 리턴되며, 이 값이 웹 브라우저에 출력된다. 그리고 해당 경로에 접속할때마다, 명령어창에 다음과 같은 메세지가 추가된다.

1
127.0.0.1 - - [27/Sep/2020 00:40:21"GET / HTTP/1.1" 200 -
cs

이와 같이 언제, 어떤 경로로 어떤 요청이 왔으며, 처리 결과가 어땠는지 자동으로 로그를 출력해준다.

 

그리고 메세지 마지막에 써있는 대로 bash 창에 ctrl+c를 입력하면 서버가 종료되고, 다시 웹 브라우저에서 해당 경로로 진입하려고 하면 페이지에 연결할 수 없다는 메세지가 뜰 것이다.

반응형

'서버 공부 기록 > python flask' 카테고리의 다른 글

[flask] 파일 받아와서 저장하기 - 1  (0) 2020.10.10
[flask] 라우팅 (1)  (0) 2020.10.01
Comments