[python] Flask와 Redis를 이용한 세션 관리 방법

이 포스트에서는 Flask 애플리케이션에서 Redis를 사용하여 세션을 관리하는 방법에 대해 알아보겠습니다.

목차

Flask 애플리케이션에 Redis 설치하기

먼저, Flask 애플리케이션 프로젝트 디렉토리에서 다음 명령을 사용하여 Redis를 설치합니다.

$ pip install redis

세션 관리를 위한 Flask-Redis 확장 기능 설치

Flask 애플리케이션에서 Redis를 사용하여 세션을 관리하기 위해 Flask-Redis를 설치합니다.

$ pip install flask-redis

Flask 애플리케이션에서 Redis를 이용한 세션 설정

다음은 Flask 애플리케이션에서 Redis를 사용하여 세션을 설정하는 예제 코드입니다.

from flask import Flask, session
from flask_redis import FlaskRedis

app = Flask(__name__)
app.config['REDIS_URL'] = "redis://localhost:6379/0"
redis_store = FlaskRedis(app)

app.secret_key = 'your_secret_key'  # 세션을 암호화하기 위한 시크릿 키 설정

@app.route('/set_session')
def set_session():
    session['username'] = 'example_user'
    return "세션 설정 완료"

@app.route('/get_session')
def get_session():
    return session.get('username', '세션에 사용자 정보가 없습니다.')

세션을 활용한 예시 코드

세션을 활용하여 로그인, 로그아웃, 사용자 정보 유지 등 다양한 기능을 구현할 수 있습니다. 이를 활용한 예시 코드는 다음과 같습니다.

@app.route('/login')
def login():
    session['logged_in'] = True
    return "로그인 성공"

@app.route('/logout')
def logout():
    session.pop('logged_in', None)
    return "로그아웃 완료"

@app.route('/user_info')
def user_info():
    if 'logged_in' in session:
        return "사용자 정보: example_user"
    else:
        return "로그인이 필요합니다."

이렇게 Flask 애플리케이션에서 Redis를 이용하여 세션을 관리할 수 있습니다.

더 자세한 내용은 Flask-Redis 공식 문서를 참조할 수 있습니다.