웹(WEB)/파이썬(Python)

[Python] Flask 기본

마달랭 2024. 12. 31. 13:45
반응형

개요

플라스크(Flask)는 파이썬으로 웹 애플리케이션을 개발할 때 사용하는 가벼운 웹 프레임워크다.

복잡한 설정 없이 빠르게 웹 서버를 만들 수 있어, 작은 프로젝트나 프로토타입을 만들 때 많이 사용된다.

 

플라스크의 특징

  • 간단하고 가벼움: 최소한의 기능만 포함되어 있고, 필요한 기능은 확장(Extension)으로 추가하는 방식이다.
  • 유연성: 프로젝트 구조와 설계를 자유롭게 할 수 있다.
  • 빠른 개발: 적은 코드로 빠르게 웹 애플리케이션을 만들 수 있다.
  • 확장성: ORM(예: SQLAlchemy), 폼 처리(예: WTForms), 인증 기능 등 다양한 확장 라이브러리를 사용할 수 있다.

 

Flask 관점에서의 웹 애플리케이션 구성

Flask는 백엔드(서버 사이드) 프레임워크로, 클라이언트(웹 브라우저)에서 요청을 처리하고 데이터를 반환하는 역할을 한다.

웹 애플리케이션은 보통 프론트엔드(클라이언트 측)와 백엔드(서버 측), 그리고 데이터베이스(DB)로 나뉜다.

 

Flask는 주로 서버 로직과 데이터 처리를 담당하는 "백엔드" 영역에 해당한다.

클라이언트에서 보낸 요청을 받고, 필요한 데이터를 처리한 후 결과를 다시 클라이언트에게 반환한다.

Flask는 직접 HTML을 렌더링할 수도 있고, JSON 형태로 데이터를 반환하는 API 서버로 사용될 수도 있다.

  • 클라이언트의 요청을 처리하고, 비즈니스 로직을 수행한다.
  • Flask는 라우팅, 인증, 데이터 처리, 파일 업로드 등 다양한 기능을 담당한다.
  • Flask에서 JSON 데이터를 반환해 REST APIGraphQL API 서버를 만들 수도 있다.

 

플라스크 설치

사용하고 있는 IDE를 열고 프로젝트 생성 후 터미널에서 하기 명령어를 실행해 준다.

가상환경은 프로젝트마다 독립된 패키지 공간을 만들어, 패키지 충돌이나 의존성 문제를 방지해준다.

따라서 파이썬 프로젝트에서는 가상환경을 사용하는 게 권장된다.

pip install flask


만약 pip의 버전이 구버전이라면 하기 명령어를 통해 pip를 최신버전으로 먼저 업데이트 해주자

python.exe -m pip install --upgrade pip

 

 

기본 사용 예시

플라스크 설치가 완료 되었다면, 웹 서버 어플리케이션을 실행할 준비가 되었다.

from flask import Flask  # Flask 클래스 import (웹 서버 애플리케이션 생성)

# Flask 애플리케이션 객체 생성
app = Flask(__name__)  
# __name__은 현재 실행 중인 모듈의 이름을 의미
# 이 코드는 Flask가 애플리케이션의 위치를 알 수 있도록 돕는다.

# 라우팅: 특정 URL에 접속했을 때 실행할 함수 정의
@app.route('/')  
def home():  
    # 클라이언트가 '/' URL로 접속하면 아래 문자열이 반환된다.
    return "Hello, Flask!"  

# 애플리케이션 실행
if __name__ == '__main__':  
    app.run(debug=True)  
    # debug=True: 코드 변경 시 서버가 자동으로 재시작되고, 에러 발생 시 디버그 화면을 띄운다.
    # app.run()은 기본적으로 http://127.0.0.1:5000에서 서버를 실행한다.


위 코드를 작성하고 실행 시 실행창에 아래와 같이 출력된다면 정상적으로 서버가 구동된 것이다.

 

현재는 토이 프로젝트이므로 * Running on 에 기재되어 있는 주소로 접근해 보자 http://127.0.0.1:5000


해당 주소로 접근 시 home 함수의 리턴 값이 웹 화면에 출력된 것을 볼 수 있다.

여기서 127.0.0.1은 나의 로컬호스트 IP주소를 의미하며, 5000은 임의로 지정한 포트번호 5000이다.

추후 AWS EC2와 같이 별도의 서버 IP를 제공받아 로컬 환경이 아닌 원격 환경에서의 접속이 가능하다.

 

728x90
반응형