Python Flask를 이용한 간단한 웹 서버 구현
Python은 웹 애플리케이션 개발에 강력한 기능을 제공하며, 특히 Flask는 가벼운 웹 프레임워크로 초보자부터 전문가까지 모두에게 인기가 높습니다. 오늘은 Flask를 이용하여 간단한 웹 서버를 구현하는 방법을 단계별로 알아보겠습니다.
Flask란?
Flask는 Python으로 작성된 마이크로 웹 프레임워크로, 간단하고 유연하며 확장 가능성이 뛰어납니다. Django와 같은 풀스택 프레임워크와 달리 최소한의 구성 요소로 시작할 수 있어, 필요에 따라 원하는 기능만 추가할 수 있습니다.
준비 사항
- Python 설치 (버전 3.8 이상 권장)
- Flask 설치
Flask 설치하기
아래 명령어를 실행하여 Flask를 설치합니다:
pip install flask
설치가 완료되면 Flask 버전을 확인해 보세요:
flask --version
간단한 웹 서버 만들기
프로젝트 구조
flask_web_server/
├── app.py
└── templates/
└── index.html
단계 1: Flask 애플리케이션 기본 설정
app.py
파일을 생성하고 아래 코드를 추가합니다:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def home():
return "Hello, Flask! Welcome to my first web server!"
if __name__ == '__main__':
app.run(debug=True)
코드 설명
Flask
클래스를 사용하여 애플리케이션 객체를 생성합니다.@app.route('/')
데코레이터는 루트 URL(/
)에 대한 요청을 처리하도록 지정합니다.debug=True
는 코드 변경 시 서버를 자동으로 재시작하고 디버그 정보를 제공합니다.
단계 2: 서버 실행
터미널에서 아래 명령어를 실행하여 서버를 시작합니다:
python app.py
브라우저에서 http://127.0.0.1:5000/
로 접속하면 "Hello, Flask! Welcome to my first web server!" 메시지가 표시됩니다.
단계 3: 템플릿 사용
Flask는 Jinja2 템플릿 엔진을 사용하여 동적 HTML 페이지를 생성할 수 있습니다.
템플릿 파일 생성
templates/index.html
파일을 생성하고 다음 내용을 추가합니다:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Flask Web Server</title>
</head>
<body>
<h1>Welcome to Flask!</h1>
<p>This is a simple web page rendered using Flask and Jinja2.</p>
</body>
</html>
템플릿 렌더링
app.py
파일을 수정하여 템플릿을 렌더링하도록 만듭니다:
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def home():
return render_template('index.html')
if __name__ == '__main__':
app.run(debug=True)
단계 4: URL 동적 라우팅
Flask는 URL에 동적 변수를 포함할 수 있습니다.
동적 URL 예제
app.py
에 아래 코드를 추가합니다:
@app.route('/user/<username>')
def user(username):
return f"Hello, {username}!"
이제 브라우저에서 http://127.0.0.1:5000/user/John
에 접속하면 "Hello, John!"이 표시됩니다.
단계 5: POST 요청 처리
Flask는 GET 및 POST 요청을 처리할 수 있습니다.
HTML 폼 생성
templates/form.html
파일을 생성하고 다음 내용을 추가합니다:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Form Example</title>
</head>
<body>
<form action="/submit" method="post">
<label for="name">Name:</label>
<input type="text" id="name" name="name">
<button type="submit">Submit</button>
</form>
</body>
</html>
POST 요청 처리
app.py
에 아래 코드를 추가합니다:
from flask import Flask, render_template, request
app = Flask(__name__)
@app.route('/form')
def form():
return render_template('form.html')
@app.route('/submit', methods=['POST'])
def submit():
name = request.form['name']
return f"Hello, {name}! Your form has been submitted."
if __name__ == '__main__':
app.run(debug=True)
테스트하기
브라우저에서 http://127.0.0.1:5000/form
에 접속하고 이름을 입력한 후 Submit 버튼을 클릭하면 결과가 표시됩니다.
결론
이번 포스팅에서는 Flask를 이용하여 간단한 웹 서버를 구현하는 방법을 배웠습니다. Flask는 초보자에게 적합하면서도 강력한 기능을 제공하여 복잡한 애플리케이션 개발에도 활용할 수 있습니다.
'Python > Python 심화' 카테고리의 다른 글
Python FastAPI로 REST API 개발하기 (0) | 2025.08.03 |
---|---|
Python Django를 이용한 웹 애플리케이션 구축 (0) | 2025.08.02 |
Python statsmodels를 이용한 통계 분석 (0) | 2025.07.31 |
Python Scikit-learn을 활용한 머신러닝 기초 (0) | 2025.07.30 |
Python Matplotlib와 Seaborn을 활용한 데이터 시각화 (0) | 2025.07.29 |