[python] Flask 프레임워크를 사용한 파이썬 웹 서비스 구축 방법

Flask는 Python으로 웹 애플리케이션을 개발하기 위한 경량화된 프레임워크로, 간단하고 빠르게 웹 서비스를 개발할 수 있습니다. 본 포스트에서는 Flask를 사용하여 간단한 웹 서비스를 구축하는 방법에 대해 알아보겠습니다.

목차

  1. Flask 설치
  2. 기본 애플리케이션 작성
  3. 템플릿과 정적 파일 사용
  4. 데이터베이스 연동
  5. 웹 서버 배포

1. Flask 설치

먼저 Flask를 설치해야 합니다. pip를 사용하여 터미널에서 다음 명령을 실행하여 Flask를 설치합니다.

pip install Flask

2. 기본 애플리케이션 작성

간단한 “Hello World” 애플리케이션을 작성해봅시다. 다음은 app.py 파일에 작성된 Flask 애플리케이션의 예시입니다.

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, World!'

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

위 코드를 app.py에 저장한 후 터미널에서 아래 명령어로 애플리케이션을 실행할 수 있습니다.

python app.py

웹 브라우저에서 http://127.0.0.1:5000/을 열면 “Hello, World!”가 표시된 페이지를 볼 수 있습니다.

3. 템플릿과 정적 파일 사용

Flask는 템플릿과 정적 파일을 효과적으로 다룰 수 있는 기능을 제공합니다. 예를 들어, templates 폴더에 HTML 템플릿 파일을, static 폴더에 CSS 및 JavaScript 파일을 저장하여 사용할 수 있습니다.

from flask import Flask, render_template
app = Flask(__name__)

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

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

위와 같이 코드를 작성한 후, index.html 파일을 templates 폴더에 저장하면, 해당 HTML 파일이 나타납니다.

4. 데이터베이스 연동

Flask는 다양한 데이터베이스와의 연동을 지원합니다. 가장 일반적으로 사용되는 데이터베이스 중 하나인 SQLite와 연동하는 방법을 살펴보겠습니다.

import sqlite3
from flask import Flask, render_template

app = Flask(__name__)

@app.route('/users')
def users():
    connection = sqlite3.connect('database.db')
    cursor = connection.cursor()
    cursor.execute('SELECT * FROM users')
    users = cursor.fetchall()
    connection.close()
    return render_template('users.html', users=users)

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

위의 코드는 SQLite 데이터베이스에 연결하고, users.html 템플릿에 유저 데이터를 전달하는 간단한 예시입니다.

5. 웹 서버 배포

애플리케이션을 외부에서 접속할 수 있도록 배포하기 위해서는 Gunicorn 또는 uWSGI와 같은 WSGI 서버를 사용하고, NginxApache와 같은 웹 서버를 프록시로 사용하여 배포할 수 있습니다.

이상으로 Flask를 사용한 간단한 파이썬 웹 서비스 구축에 대해 알아보았습니다.

참고문헌: Flask 공식 문서