🖥️ Flask 웹 애플리케이션에서 for 문 활용하기
Flask 웹 애플리케이션에서 for 문을 활용하여 동적인 HTML 목록을 생성하는 방법에 대해 설명합니다. 이 과정에서는 **app.py**에 라우트를 추가하고, 리스트를 전달하여 결과를 렌더링하는 구조로 구현합니다.
1. Flask에서 for 문을 사용하여 HTML 목록 생성하기
Flask 애플리케이션에서 for 문을 사용하여 동적 리스트를 생성하고 이를 HTML로 출력하는 방식에 대해 알아봅니다. for 문을 사용하면 반복 가능한 데이터(예: 리스트, 딕셔너리 등)를 HTML 페이지에 동적으로 출력할 수 있습니다.
1.1. Flask 라우트 설정 및 데이터 전달
우리는 GET 요청을 통해 특정 주소로 접근할 때 리스트 데이터를 반환하는 기능을 구현합니다. 예시로, 독서, 운동, 게임과 같은 항목들을 포함하는 리스트를 생성하여 이를 HTML 페이지에 전달합니다.
app.py 코드 예시:
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def index():
# 리스트 데이터 생성
activities = ["독서", "운동", "게임"]
# 템플릿으로 데이터 전달
return render_template('harvest.html', activities=activities)
if __name__ == '__main__':
app.run(debug=True)
- activities 리스트: 여기서는 독서, 운동, 게임 항목을 포함하는 리스트를 생성하고 이를 harvest.html 파일로 전달합니다.
- render_template: 템플릿 엔진을 통해 harvest.html 파일에 데이터를 전달하여, 그 데이터를 HTML로 렌더링합니다.
1.2. HTML에서 for 문 활용
harvest.html 파일에서 for 문을 사용하여 리스트 항목을 반복적으로 출력합니다. 이를 위해 ul 태그 내에서 li 태그로 각 항목을 감싸서 리스트 형식으로 출력할 수 있습니다.
harvest.html 코드 예시:
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>활동 목록</title>
</head>
<body>
<h1>나의 활동 목록</h1>
<ul>
{% for activity in activities %}
<li>{{ activity }}</li>
{% endfor %}
</ul>
</body>
</html>
- {% for activity in activities %}: activities 리스트의 각 항목을 반복하며, 각 항목을 <li> 태그로 감싸 출력합니다.
- {{ activity }}: 리스트 항목을 HTML 내에서 동적으로 출력합니다.
- {% endfor %}: for 문을 종료합니다.
2. 가상 환경에서 Flask 실행 방법
Flask 애플리케이션을 실행하기 전에 가상 환경을 설정하는 것이 중요합니다. 가상 환경을 사용하면 프로젝트별로 의존성 관리가 용이해지고, 다른 프로젝트와의 충돌을 방지할 수 있습니다.
2.1. 가상 환경 활성화
- 가상 환경을 생성하려면 아래 명령어를 실행합니다:
venv\Scripts\activate
- 가상 환경을 활성화하려면 아래 명령어를 사용합니다:
- Windows:
venv\Scripts\activate
- Mac/Linux:
source venv/bin/activate
2.2. Flask 실행
가상 환경을 활성화한 후, Flask 애플리케이션을 실행하려면 app.py 파일이 있는 위치에서 아래 명령어를 실행합니다:
python app.py
Flask가 실행되면, **http://localhost:5000**에서 웹 애플리케이션을 확인할 수 있습니다.
3. Flask 템플릿 사용 마무리
Flask 템플릿 엔진을 사용하여 HTML 파일을 동적으로 렌더링하는 방법에 대해 학습했습니다. 이 과정에서 리스트 데이터를 for 문을 통해 반복적으로 출력하는 방법을 익혔습니다. 이제 실제 프로젝트에서 이 방식은 동적 콘텐츠 생성에 활용될 수 있습니다.
4. 🚀 챗봇 개발과 사이드 프로젝트의 중요성
Flask는 웹 애플리케이션뿐만 아니라 챗봇과 같은 사이드 프로젝트를 진행할 때도 유용하게 사용될 수 있습니다. 웹소켓을 활용하여 실시간 커뮤니케이션을 구현할 수 있으며, 플라스크 외에도 장고에서 잘 활용될 수 있습니다.
4.1. 챗봇 개발 시 웹소켓 사용
웹소켓은 실시간 데이터 전송을 가능하게 하여 챗봇과 같은 애플리케이션에서 대화형 기능을 구현할 수 있습니다. Flask에서 웹소켓을 사용하려면 추가적인 라이브러리(Flask-SocketIO)를 설치하고 설정해야 합니다.
5. 📧 PRG 패턴과 메일 전송 과정 이해하기
PRG (Post/Redirect/Get) 패턴은 웹 애플리케이션에서 폼 제출 후 리디렉션을 처리하는 방식으로, 사용자 경험을 향상시키고 중복된 요청을 방지하는 데 유용합니다. 이 과정에서 POST 요청을 보내고, 리디렉션을 통해 결과 화면을 표시하며, GET 요청을 통해 화면을 구성하는 방식입니다.
5.1. PRG 패턴 설명
PRG 패턴을 사용하면, 사용자가 폼을 제출한 후 중복 클릭을 방지하고 결과 화면을 정상적으로 표시할 수 있습니다.
@app.route('/submit', methods=['POST'])
def submit():
# 데이터 처리 후 리디렉션
return redirect(url_for('result'))
5.2. 메일 전송 및 결과 리디렉션
- 사용자가 메일 전송 폼을 작성한 후 POST 요청을 보냅니다.
- 서버는 요청을 처리하고, 리디렉션을 통해 결과 화면으로 이동시킵니다.
- GET 요청을 통해 화면을 구성하고 결과를 보여줍니다.
6. 🎯 결과물 제작의 중요성
결과물을 만드는 과정은 개발자로서 성장하는 데 매우 중요합니다. 완성도보다는 목표 달성에 중점을 두고, 작은 목표부터 시작하여 성취감을 얻는 경험이 중요합니다. 이를 통해 자신의 발전을 추적하고, 실제로 사용자에게 유용한 서비스를 제공하는 경험을 쌓을 수 있습니다.
6.1. 결과물 생산의 중요성
결과물이 지속적으로 나오지 않으면 포기하는 습관이 생기고, 흥미를 잃게 됩니다. 이를 방지하려면 무조건 결과물을 만들어내는 습관을 기르는 것이 중요합니다.
목표 달성 | 결과물의 완성도보다 목표 달성이 중요합니다. |
작은 과제부터 시작 | 작은 목표부터 결과물을 만들어내는 습관이 중요합니다. |
사회에서의 중요성 | 결과물을 만들어내지 못하면 사회 생활에서 불이익을 받을 수 있습니다. |
'특강' 카테고리의 다른 글
3-4 Flask 의 유효성 검증과 세션 관리(secret,flash,email-validator,flask-mail) with 파머 (0) | 2025.04.23 |
---|---|
3-2 1인 개발과 사업의 가능성 사이드프로젝트 활용 with 파머 (0) | 2025.04.23 |
3-1 개발과 개발자로서 성장하는 법 with 파머 (0) | 2025.04.23 |
2-1 Flask 요청 처리 이해하기 특강 with 파머강사 (0) | 2025.04.22 |
2-2 Flask 요청 처리 이해하기 특강 with 파머강사 (0) | 2025.04.22 |