[python] Flask의 기본 원리와 동작 방식

Flask는 파이썬으로 작성된 경량 웹 응용 프레임 워크입니다. Flask는 Jinja2 템플릿 엔진을 사용하여 웹 페이지를 렌더링하고, Werkzeug를 통해 URL 라우팅 및 HTTP 요청 처리를 지원합니다. 이 기사에서는 Flask의 기본 원리와 동작 방식에 대해 설명하겠습니다.

웹 애플리케이션 라우팅

Flask 애플리케이션은 URL 규칙과 뷰 함수 간의 매핑을 통해 라우팅을 처리합니다. 예를 들어, 사용자가 /home 경로를 요청하면, 해당 요청은 특정한 뷰 함수와 연결되어 이에 따라 응답이 반환됩니다.

from flask import Flask
app = Flask(__name__)

@app.route('/home')
def home():
    return 'Welcome to the home page'

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

위의 예시에서 /home 경로로 들어오는 요청은 home() 함수와 연결되어, 'Welcome to the home page'를 반환합니다.

HTTP 요청 처리

Flask는 다양한 HTTP 메서드(GET, POST, PUT, DELETE 등)를 지원하여 요청을 처리합니다. 또한, 요청의 데이터를 처리하고 응답을 생성하는 데 사용되는 여러 도구를 제공합니다.

from flask import request

@app.route('/login', methods=['POST', 'GET'])
def login():
    if request.method == 'POST':
        # POST 요청을 처리하는 코드
    else:
        # GET 요청을 처리하는 코드

위의 코드에서는 /login 경로로의 POST 및 GET 요청을 처리하는 방법이 보여집니다.

템플릿 엔진을 통한 웹 페이지 렌더링

Flask는 Jinja2 템플릿 엔진을 사용하여 동적으로 웹 페이지를 생성합니다. 이를 통해 HTML 템플릿과 데이터를 결합하여 사용자에게 동적인 콘텐츠를 제공할 수 있습니다.

from flask import render_template

@app.route('/user/<name>')
def user(name):
    return render_template('user.html', name=name)

위의 코드에서는 user.html 템플릿에 name 변수를 전달하여 웹 페이지를 렌더링합니다.

결론

Flask는 간단하고 직관적인 문법을 통해 웹 응용 프로그램을 빠르게 개발할 수 있는 매력적인 프레임워크입니다. Flask의 기본 동작 방식을 이해하고 활용함으로써 더욱 유연하고 강력한 웹 애플리케이션을 구축할 수 있습니다.

더 많은 정보를 확인하려면 Flask 공식 문서를 참조하세요.