TITEDIOS 편한 코딩

Flask로 웹개발: #1 Flask 소개 본문

Flask 웹 서버 만들기

Flask로 웹개발: #1 Flask 소개

TitediosKW 2024. 7. 16. 19:00
반응형


간단하고 강력한 웹 프레임워크

Flask에 대해 한마디로 정의하면 위와 같습니다. 이번 포스팅에서는 앞으로 사용할 간단하면서도 강력한 파이썬 웹 프레임워크인 Flask에 대해 소개해 드리겠습니다. 테스트용으로 간단하게 작성하기도 좋고 실제 실무에서 API 등의 기능을 개발하는데도 자주 사용됩니다.

Flask란?

Flask는 파이썬으로 작성된 마이크로 웹 프레임워크입니다. 2010년에 아민 론처(Armin Ronacher)에 의해 개발되었으며, "마이크로"라는 이름은 최소한의 요구 사항으로 시작해 필요한 기능을 확장할 수 있다는 의미입니다. Flask는 단순한 디자인 철학을 바탕으로 필요한 부분만을 사용자가 선택하여 개발할 수 있도록 도와줍니다.

Flask의 주요 특징

  • 경량 및 유연성: Flask는 매우 가볍고 유연합니다. 기본적으로 필요한 모듈들만 포함되어 있으며, 필요에 따라 다양한 확장 모듈을 추가할 수 있습니다.
  • 간단한 사용법: Flask는 직관적이고 간단한 API를 제공하여 빠르게 애플리케이션을 개발할 수 있도록 도와줍니다.
  • 확장 가능: 필요에 따라 다양한 확장 프로그램을 통해 기능을 추가할 수 있습니다. 데이터베이스, 폼 처리, 인증 등 여러 가지 확장을 쉽게 통합할 수 있습니다.
  • Jinja2 템플릿 엔진: 강력한 템플릿 엔진인 Jinja2를 사용하여 HTML을 동적으로 생성할 수 있습니다.

Flask 시작하기

Flask를 시작하기 위해서는 먼저 Python과 pip가 설치되어 있어야 합니다. 아래의 명령어로 Flask를 설치할 수 있습니다:

pip install Flask


설치가 완료되면, 간단한 Flask 애플리케이션을 만들어 보겠습니다. 앞으로 작성할 flask의 기본 구조이기도 하니까 익혀두시길 바랍니다.

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, World!'

if __name__ == '__main__':
    app.run(debug=True)


위 코드를 app.py 파일로 저장하고 실행하면, 간단한 웹 서버가 실행됩니다. 웹 브라우저에서 http://127.0.0.1:5000/에 접속하면 "Hello, World!"라는 문구를 확인할 수 있습니다.

Flask의 주요 구성 요소

  • 라우팅 (Routing): URL과 함수를 매핑하여 사용자가 요청한 URL에 따라 적절한 함수를 실행합니다. 위 예제의 @app.route('/') 데코레이터가 그 예입니다.
  • 템플릿 (Templates): 동적 HTML 페이지를 생성할 수 있도록 도와줍니다. Jinja2 템플릿 엔진을 사용하여 템플릿을 쉽게 만들 수 있습니다.
  • 요청 객체 (Request Object): 사용자의 요청 데이터를 처리하는 데 사용됩니다. 폼 데이터, 파일 업로드, 쿠키 등을 처리할 수 있습니다.
  • 응답 객체 (Response Object): 사용자의 요청에 대한 응답을 반환하는 데 사용됩니다.

결론

Flask는 간단하면서도 강력한 기능을 제공하는 파이썬 웹 프레임워크입니다. 초보자부터 숙련된 개발자까지 모두 쉽게 접근할 수 있으며, 필요에 따라 다양한 확장을 통해 기능을 추가할 수 있습니다. 앞으로 저와 여러분은 Flask를 이용하여 간단한 웹 개발을 해볼 것 입니다. 파이썬 기초 강의를 보셨다면 금방따라 하실 수 있을 것 입니다.

그리고, 프로그래밍에 자신이 없더라도 너무 두려워하지 마세요. 누구나에게 처음은 있고 그 처음은 늘 두렵고 힘든 것 입니다. 한번에 이해가 가지 않는다면 두번 세번 손으로 따라해보고 동작시켜본다면 누구나 다 이해할 수 있으니까 걱정마시고 키보드부터 두드리세요 ㅎㅎㅎㅎ. 저도 최대한 친절하고 자세하게 설명드리겠습니다. 그럼 Flask로의 여행을 시작하겠습니다.

감사합니다!

반응형