Python/Python 심화

Python Flask를 이용한 간단한 웹 서버 구현

임베디드 친구 2025. 8. 1. 21:33
728x90
반응형

Python Flask를 이용한 간단한 웹 서버 구현

Python은 웹 애플리케이션 개발에 강력한 기능을 제공하며, 특히 Flask는 가벼운 웹 프레임워크로 초보자부터 전문가까지 모두에게 인기가 높습니다. 오늘은 Flask를 이용하여 간단한 웹 서버를 구현하는 방법을 단계별로 알아보겠습니다.

Flask란?

Flask는 Python으로 작성된 마이크로 웹 프레임워크로, 간단하고 유연하며 확장 가능성이 뛰어납니다. Django와 같은 풀스택 프레임워크와 달리 최소한의 구성 요소로 시작할 수 있어, 필요에 따라 원하는 기능만 추가할 수 있습니다.

준비 사항

  1. Python 설치 (버전 3.8 이상 권장)
  2. 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)

코드 설명

  1. Flask 클래스를 사용하여 애플리케이션 객체를 생성합니다.
  2. @app.route('/') 데코레이터는 루트 URL(/)에 대한 요청을 처리하도록 지정합니다.
  3. 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는 초보자에게 적합하면서도 강력한 기능을 제공하여 복잡한 애플리케이션 개발에도 활용할 수 있습니다.

728x90
반응형