[파이썬] Flask 앱의 기본 구조

Flask는 Python에서 웹 애플리케이션을 빠르고 간편하게 개발할 수 있는 마이크로 웹 프레임워크입니다. Flask 앱의 기본 구조는 다음과 같습니다.

1. 가상 환경 설정 및 Flask 설치

먼저, Flask를 사용하기 위해 가상 환경을 설정해야 합니다. 이는 다른 프로젝트와 충돌을 피하기 위해 권장되는 방법입니다. 가상 환경을 설정한 후에는 pip를 사용하여 Flask를 설치해야 합니다.

# 가상 환경 생성
python -m venv myenv

# 가상 환경 활성화
source myenv/bin/activate

# Flask 설치
pip install Flask

2. Flask 앱 구성 요소

Flask 앱은 다음과 같은 구성 요소로 이루어져 있습니다.

2.1. Application Factory

Flask 앱은 “Application Factory” 패턴을 사용하여 생성됩니다. 이 패턴은 앱을 생성하고 초기화하는 함수를 정의하여 유연성과 모듈화를 제공합니다.

from flask import Flask

def create_app():
    app = Flask(__name__)

    # 앱 초기화 및 설정

    return app

app = create_app()

2.2. Routes

라우트는 웹 애플리케이션의 경로를 지정하고 해당 경로에 대한 동작을 정의합니다. Flask는 @app.route 데코레이터를 사용하여 경로와 처리할 함수를 연결합니다.

from flask import Flask

app = Flask(__name__)

@app.route('/')
def home():
    return "Hello, Flask!"

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

2.3. Templates

템플릿은 동적인 HTML 페이지를 생성하는 데 사용됩니다. Flask는 Jinja2 템플릿 엔진을 내장하고 있으며, render_template 함수를 사용하여 템플릿을 렌더링합니다.

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def home():
    return render_template('index.html')

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

2.4. Static Files

정적 파일(이미지, CSS, JavaScript 등)을 제공해야 하는 경우, Flask는 static 폴더를 통해 해당 파일을 제공합니다. url_for 함수를 사용하여 정적 파일의 경로를 가져올 수 있습니다.


<!DOCTYPE html>
<html>
<head>
    <title>Flask App</title>
    <link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='styles.css') }}">
</head>
<body>
    <h1>Welcome to Flask App!</h1>

    <img src="{{ url_for('static', filename='logo.png') }}" alt="Logo">

    <script src="{{ url_for('static', filename='script.js') }}"></script>
</body>
</html>

3. Flask 앱 실행

Flask 앱을 실행하기 위해서는 앱을 담당하는 파이썬 스크립트를 실행해야 합니다.

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

위의 코드를 추가하고 스크립트를 실행하면 Flask 앱이 로컬 서버에 실행됩니다.

python app.py

이제 Flask 앱의 기본 구조를 이해했으니, 사용자 정의 라우트와 뷰 함수, 폼 처리, 데이터베이스 연동 등 다양한 기능을 추가하여 웹 애플리케이션을 개발할 수 있습니다. Flask는 간단하면서도 유연한 구조로 개발을 할 수 있어 많은 개발자들에게 인기 있는 웹 프레임워크입니다.