Flask

2023. 10. 4. 17:14docker

Flask

Flask는 Python 웹 프레임워크로, 간결하고 가벼우며 확장 가능한 웹 애플리케이션을 빠르게 개발하기 위한 도구다. Flask는 웹 애플리케이션을 구축하는 데 필요한 기본 구조와 도구를 제공하면서도 개발자에게 많은 유연성을 제공한다.

 

 

주요 특징과 개념
  • 마이크로 웹 프레임워크 : Flask는 "마이크로" 웹 프레임워크로 알려져 있으며, 기본적인 웹 프레임워크 기능을 제공하면서도 필요한 추가 기능을 확장할 수 있도록 핵심 기능을 최소화한다. 이로 인해 개발자는 원하는 방식으로 애플리케이션을 구성하고 확장할 수 있다.
  • 라우팅 : Flask는 URL 경로와 뷰 함수 간의 매핑을 통해 요청을 처리한다. 이를 통해 사용자가 특정 URL을 방문했을 때 어떤 함수가 실행될지를 정의할 수 있다.
  • 템플릿 엔진 : Flask는 Jinja2와 같은 템플릿 엔진을 지원하여 동적인 웹 페이지를 생성할 수 있다. 이를 통해 데이터와 HTML 템플릿을 조합하여 동적 콘텐츠를 제공할 수 있다.
  • 웹 폼 : Flask-WTF와 같은 확장 기능을 사용하여 웹 폼을 쉽게 처리할 수 있다. 이를 통해 사용자 입력을 유효성 검사하고 처리할 수 있다.
  • 확장성 : Flask는 다양한 확장 패키지를 지원한다. 예를 들어 데이터베이스 연동, 사용자 인증 및 세션 관리, RESTful API 개발, 테스트, 보안 등을 다루는 확장을 사용하여 기능을 확장할 수 있다.
  • 개발자 친화적 : Flask는 간단하고 명확한 문서, 활발한 커뮤니티, 풍부한 예제 등을 통해 개발자가 웹 애플리케이션을 쉽게 개발하고 유지할 수 있도록 지원한다.
  • RESTful 지원 : RESTful API를 쉽게 구현할 수 있는 구조를 가지고 있으므로 웹 서비스를 개발하는 데 적합하다.
  • Werkzeug와 Jinja2 : Flask는 두 가지 핵심 라이브러리인 Werkzeug와 Jinja2를 기반으로 한다. Werkzeug는 웹 요청 및 응답 처리를 지원하며, Jinja2는 템플릿 엔진으로 사용된다.

 

 

참고 사이트

https://runebook.dev/ko/docs/docker/compose/gettingstarted/index

 

Docker Compose 시작하기

Documentation Contributors GitHub

runebook.dev

 

 

docker compose를 이용해서 Flask 설치

app.py 생성

 

 

requirements.txt 생성

 

 

Dockerfile 생성

 

 

  • docker-compose.yml 생성

version: '3'
services:
  flask:
    image: flask-redis
    ports:
      - 50000:5000
  redis:
    image: redis 

확인 후 docker compose up

 

 

접속하면 새로고침 할 때마다 숫자가 1씩 증가

 

 

데이터 저장

version: "3.9"
services:
  web:
    build: .
    ports:
      - "8000:5000"
    volumes:
      - .:/code
    environment:
      FLASK_ENV: development
  redis:
    image: "redis:alpine"
    volumes:
      - .:/data

docker-compose.yml 수정

 

 

접속하면 새로고침 할 때마다 숫자가 1씩 증가

 

 

docker compose down

 

 

연결 안 됨 / 다시 docker compose up 해보자

 

 

카운트 숫자가 이어짐

 

 

app.py 문구 수정

 

 

다시 빌드하지 않아도 문구가 바로 바뀌면서 카운트 됨

'docker' 카테고리의 다른 글

blog 만들기  (0) 2023.10.05
Nginx  (0) 2023.10.05
WordPress  (0) 2023.10.04
Docker Compose  (0) 2023.10.04
docker 기본 사항  (0) 2023.10.04