쿠키는 웹 애플리케이션에서 클라이언트와 상호작용할 때 사용되는 작은 데이터 조각입니다. 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()
메소드에는 여러 가지 옵션을 설정할 수 있는 매개변수가 있습니다. 일반적으로 가장 많이 사용되는 옵션은 다음과 같습니다.
max_age
: 쿠키의 유효 기간을 초 단위로 설정합니다.expires
: 쿠키의 만료 일자를 설정합니다.path
: 쿠키의 적용 경로를 설정합니다.domain
: 쿠키의 적용 도메인을 설정합니다.secure
: 쿠키가 HTTPS 연결에서만 전송되어야 하는지 설정합니다.httponly
: 쿠키에 접근 가능한 방법을 제한합니다.
더 자세한 내용은 Flask 문서 - Response Objects를 참조하십시오.
결론
Flask에서 쿠키를 사용하면 클라이언트와 상호작용하는데 매우 유용한 기능을 추가할 수 있습니다. 생성, 읽기, 삭제 및 옵션 설정을 통해 쿠키를 효과적으로 사용할 수 있습니다. 쿠키는 사용자의 경험을 개선하고 상태를 유지하는 데에 도움이 되므로 Flask 애플리케이션을 개발할 때 쿠키를 적극적으로 활용해보는 것을 추천합니다.