flask는 웹 개발을 위해 사용되는 파이썬 프레임워크이다. 파이썬으로 구현한 코드 상에서 바로 import 해서 사용할 수 있기 때문에, training 된 딥러닝 모델을 사용하는 웹 형태의 어플리케이션을 만들 때 유용하게 활용 할 수 있다. 이 포스트에서는 flask 설치/간단한 실행에 대해 정리해보았다.

1. Flask 설치

아래의 명령어로 flask를 설치한다.

pip install flask

작업 폴더를 생성하고, 해당 폴더 내에 app.py라는 파일 생성 후 아래의 내용을 입력한다.

from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
    return 'Flask Example'

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

이후 app.py를 실행하면, 5000번 포트를 통해 'Flask Example'이 나오는 웹 페이지를 확인 할 수 있다.

이때 터미널 창에 아래의 메시지가 나오는데, 이는 앞서 app.py 파일 app.run() 안에 적은 debug=True 부분으로 인한 것으로, 코드 수정 시 Flask가 업데이트 된다는 것을 알려준다.

Debug mode: on
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
 * Restarting with stat
 * Debugger is active!

Routing

Flask에서는 URL연결에 decorator(@가 붙는)가 활용된다.

decorator는, 바로 다음행에 오는 함수를 담당하게 되는데, route decorator는 flask 서버로 /URL 요청이 들어오면 아래에 있는(장식하는) 함수에서 결과를 반환할 때까지 대기한다. 결과를 받으면, 기다리고 있는 웹 브라우저로 전달한다.

즉, route decorator를 사용하여, 특정 URL에 접속했을 때 특정 함수의 결과가 반환되도록 설정 할 수 있다.

위에서 저장한 app.py 파일을 아래처럼 수정함으로써 /test URL에서 test()함수의 결과를 확인 할 수 있게 된다.

from flask import Flask
app = Flask(__name__)

@app.route('/')
def index():
    return 'Flask Example'

@app.route('/test')
def test():
    return 'This is test page!'

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

이제 http://127.0.0.1:5000/test에 접속해보면 아래와 같은 화면을 볼 수 있다. 다음 포스트에서는, Flask와 python 간의 변수 전달에 대해 정리할 예정이다.