본문 바로가기

Python

Python Web Framework : Flask

Flask 로고

 

1. Flask란 무엇인가?

  1. 웹 사이트, API 서버를 만들 수 있는 Python Web Framework
  2. Micro Web Framework
    1. 가벼운 기능을 제공하여 가볍게 배우고 사용할 수 있음
    2. 자유도가 높으나 어플리케이션이 복잡해 질 경우 작업이 많아짐.
  3. Flask는 템플릿 엔진인 Jinja2와 WSGI(Web Server Gateway Interface) 툴킷인 Werkzeug라는 두 개의 외부 라이브러리에 의존함

 

2. jinja2란?

  1. Python에서 가장 많이 사용되는 템플릿 엔진 중에 하나
  2. template을 jinja2의 문법에 따라서 만들고 flask로 렌더링하면 훨씬 간단한 코드를 작성할 수 있음

 

3. Werkzeug란? (WSGI)

  1. WSGI(Web Server Gateway Interface)
    1. WSGI : Python 코드로 구성된 WAS가 웹 서버와 통신하는 표준 인터페이스
    2. 웹 서버는 Callable Object를 통해 HTTP Request에 대한 정보(Method, URL 등)와 Callback 함수 정보를 WAS에 전달함
  2. Werkzeug
    1. Werkzeug는 WSGI Middleware 기능을 가진 라이브러리
    2. WSGI Middleware는 웹 어플리케이션의 실행 전후에 라우팅, 세션, 쿠키 등의 기능을 추가해 줄 수 있음
    3. 자체적으로 웹 서버의 역할을 할 수도 있음
    4. Flask의 URL rule은 Werkzeug의 라우팅 모듈에 기반함
    5. Werkzeug는 WSGI 서버를 자체 내장하고있기 때문에 어플리케이션을 직접 실행할 수 있음

'Python' 카테고리의 다른 글

[Python] Python의 UnicodeDecodeError  (0) 2020.07.14