Recommanded Free YOUTUBE Lecture: <% selectedImage[1] %>

Flask

Python기반의 microframework란다. 경량(lightweight)프레임워크라고 불러도 상관없겠다.

Django, ROR등 소위 말하는 풀스택 프레임워크를 다뤄본적이 없어서, 이들과 비교해서 어떤 부분이 어떻게 경량인지는 모른다. 루비쪽에서는 sinatra가 이와 비슷한 위치에 있는 프레임워크일건데, REST API 개발에는 최적화된 모습을 보인다. 해서 Flask도 비슷하겠지라는 생각으로 살펴보려한다. Flask 관련 몇개 소개글들을 살펴보니, 복잡한 view를 포함하지 않은 REST API 서버의 개발에는 최상의 툴이라고 해서 기대를 하고 있다.

개발 환경

  • AWS 에서 테스트.
  • 우분투 리눅스 13.04 server 버전

설치

pip로 설치했다.
# pip install flask 

Hello World

Hello World 만한게 없지.
# cat hello.py
from flask import Flask
app = Flask(__name__)
app.debug = True

@app.route("/")
def hello():
        return "Hello, World!"

if __name__ == "__main__":
        app.run(host='0.0.0.0', port=80)
AWS이니 만큼, 인터넷 접근을 허용하기 위해서 0.0.0.0:80으로 바인드 주소를 잡았다.

# python hello.py 
 * Running on http://0.0.0.0:80/
 * Restarting with reloader
이제 브라우저로 접근하면 된다.

Sinatra와 비교해보면, DSL의 장점을 살린 Sinatra 쪽의 코드가 직관적으로 보인다. 같은 일을 하는 코드를 sinatra로 만든다면 아래와 같을 거다.
GET '/' do 
  "Hello, World!"
end

HTTP 정보 가져오기

템플릿 엔진

Database 연동

유닛 테스트

만들어 보자 REST API 서버