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는 간단하면서도 유연한 구조로 개발을 할 수 있어 많은 개발자들에게 인기 있는 웹 프레임워크입니다.