[파이썬] Flask에서 쿠키 사용하기

쿠키는 웹 애플리케이션에서 클라이언트와 상호작용할 때 사용되는 작은 데이터 조각입니다. Flask는 쿠키를 사용하여 상태를 유지하거나 사용자 정보를 저장하는 데에 매우 유용합니다. 이 블로그 포스트에서는 Flask에서 쿠키를 사용하는 기본적인 방법에 대해 알아보겠습니다.

쿠키 생성하기

make_response() 함수와 set_cookie() 메소드를 사용하여 Flask 애플리케이션에서 쿠키를 생성할 수 있습니다. 다음은 예시 코드입니다.

from flask import Flask, make_response

app = Flask(__name__)

@app.route('/')
def index():
    response = make_response('<h1>Welcome to my website!</h1>')
    response.set_cookie('username', 'John')
    return response

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

위의 코드는 ‘/’ 경로로 요청이 들어오면 ‘Welcome to my website!’ 메시지를 반환하고, 쿠키로 ‘username’과 ‘John’ 값을 설정합니다. 이제 사용자가 웹 사이트에 방문할 때마다 ‘username’ 쿠키를 전송하게 됩니다.

쿠키 읽기

request 객체의 cookies 속성을 사용하여 Flask 애플리케이션에서 클라이언트가 전송한 쿠키를 읽을 수 있습니다. 다음은 예시 코드입니다.

from flask import Flask, request

app = Flask(__name__)

@app.route('/')
def index():
    username = request.cookies.get('username')
    return f'<h1>Welcome back, {username}!</h1>'

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

위의 코드는 ‘/’ 경로로 요청이 들어오면 클라이언트의 ‘username’ 쿠키를 읽어와서 ‘Welcome back, {username}!’ 메시지를 반환합니다.

쿠키 삭제하기

쿠키를 삭제하려면 response 객체에서 delete_cookie() 메소드를 사용하면 됩니다. 다음은 예시 코드입니다.

from flask import Flask, make_response

app = Flask(__name__)

@app.route('/')
def index():
    response = make_response('<h1>Goodbye!</h1>')
    response.delete_cookie('username')
    return response

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

위의 코드는 ‘/’ 경로로 요청이 들어오면 ‘Goodbye!’ 메시지를 반환하고, 클라이언트의 ‘username’ 쿠키를 삭제합니다.

쿠키 설정 옵션

set_cookie() 메소드에는 여러 가지 옵션을 설정할 수 있는 매개변수가 있습니다. 일반적으로 가장 많이 사용되는 옵션은 다음과 같습니다.

더 자세한 내용은 Flask 문서 - Response Objects를 참조하십시오.

결론

Flask에서 쿠키를 사용하면 클라이언트와 상호작용하는데 매우 유용한 기능을 추가할 수 있습니다. 생성, 읽기, 삭제 및 옵션 설정을 통해 쿠키를 효과적으로 사용할 수 있습니다. 쿠키는 사용자의 경험을 개선하고 상태를 유지하는 데에 도움이 되므로 Flask 애플리케이션을 개발할 때 쿠키를 적극적으로 활용해보는 것을 추천합니다.