Python wsgi 웹 애플리케이션 werkzeug 라이브러리 알아보기
오늘은 Python에서 WSGI 웹 애플리케이션인 werkzeug 라이브러리를 알아보려 합니다.
플라스크는 Werkzeug를 랩핑하여 WSGI를 사용합니다.
werkzeug 설치
우선 virtualenv로 파이썬 환경을 분리해줍니다.
pip3 install virtualenv
virtualenv -mvenv env
env라는 이름의 가상 환경을 생성합니다.
source env/bin/activate
가상환경을 폴더에서 활성화합니다.
pip3 install --upgrade pip
pip의 업그레이드가 존재하는지 확인하고 진행합니다.
pip install -U Werkzeug
pip로 werkzeug를 설치합니다.
hello world 서버
from werkzeug.wrappers import Request, Response
from werkzeug.serving import run_simple
werkzeug를 가져옵니다.
@Request.application
def application(request):
return Response('Hello, World!')
application 함수를 구현합니다.
이로 인하여 해당 서버에서 반환은 ‘Hello, World!’가 됩니다.
if __name__ == '__main__':
run_simple('localhost', 8000, application)
localhost의 8000번 포트를 열어서 application을 구동합니다.
서버 테스트
from werkzeug.test import Client
from werkzeug.wrappers import BaseResponse
import hello_world
werkzeug와 방금 만든 hello_world 애플리케이션을 가져옵니다.
c = Client(hello_world.application, BaseResponse)
resp = c.get('/')
status = resp.status_code
print(status)
hello_world 애플리케이션의 클라이언트 객체를 생성하고, 반환되는 status code를 확인할 수 있습니다.
200으로 반환됩니다.
header = resp.headers
print(header)
헤더를 확인할 수 있습니다.
Content-Type: text/plain; charset=utf-8 Content-Length: 13
위와 같이 출력됩니다.
response_data = resp.data
print(response_data)
서버에서 반환받은 값이 출력됩니다.
b’Hello, World!’로 출력됩니다.
서버 디버깅
from werkzeug.debug import DebuggedApplication
import hello_world
werkzeug와 방금 만든 hello_world 애플리케이션을 가져옵니다.
app = DebuggedApplication(hello_world.application, evalex=True)
디버깅 지원을 활성화할 수 있습니다.
Written on July 18, 2019