[파이썬] Tornado에서의 쿠키 관리

Tornado는 파이썬으로 작성된 웹 프레임워크로, 비동기식 네트워크 프로그래밍을 지원하며 효율적인 웹 애플리케이션 개발을 가능하게 합니다. 쿠키는 클라이언트와 서버 사이에 상태를 유지하는 데 사용되며, Tornado에서 쿠키를 관리하는 방법을 배워봅시다.

쿠키 생성

쿠키를 생성하려면 set_cookie 메서드를 사용해야 합니다. 다음은 쿠키를 생성하는 예제입니다.

import tornado.web

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.set_cookie("name", "John")
        self.write("Cookie has been set")

set_cookie 메서드는 첫 번째 인자로 쿠키의 이름을, 두 번째 인자로 쿠키의 값을 전달합니다. 이 예제에서는 “name”이라는 쿠키에 “John”이라는 값을 설정했습니다.

쿠키 읽기

응답의 일부로 전송된 쿠키를 읽으려면 get_cookie 메서드를 사용합니다. 다음은 쿠키를 읽는 예제입니다.

import tornado.web

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        name = self.get_cookie("name")
        if name:
            self.write(f"Hello, {name}")
        else:
            self.write("No cookie found")

get_cookie 메서드에 쿠키의 이름을 전달하면 해당 쿠키의 값을 반환합니다. 이 예제에서는 “name”이라는 쿠키의 값을 변수 name에 저장하고, 만약 값이 존재한다면 해당 값을 사용하여 “Hello, [name]”을 출력합니다. 값이 존재하지 않을 경우 “No cookie found” 메시지를 출력합니다.

쿠키 삭제

쿠키를 삭제하려면 clear_cookie 메서드를 사용합니다. 다음은 쿠키를 삭제하는 예제입니다.

import tornado.web

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.clear_cookie("name")
        self.write("Cookie has been cleared")

clear_cookie 메서드에 쿠키의 이름을 전달하면 해당 쿠키가 삭제됩니다. 이 예제에서는 “name”이라는 쿠키를 삭제하고 “Cookie has been cleared” 메시지를 출력합니다.

쿠키 옵션

쿠키를 생성할 때 expires 매개변수를 사용하여 쿠키의 만료 시간을 설정할 수 있습니다. 다음은 만료 시간을 설정하는 예제입니다.

import tornado.web
import datetime

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        expires = datetime.datetime.utcnow() + datetime.timedelta(days=30)
        self.set_cookie("name", "John", expires=expires)
        self.write("Cookie with expiration date has been set")

expires 매개변수에는 만료 시간을 나타내는 datetime 개체를 전달합니다. 이 예제에서는 현재 시간에서 30일 후를 만료 시간으로 설정하고 “name”이라는 쿠키를 생성합니다.

쿠키에는 다양한 옵션을 설정할 수 있으며, 자세한 내용은 Tornado 문서를 참조하시기 바랍니다.

쿠키는 웹 애플리케이션에서 중요한 역할을 하며, Tornado를 사용하여 쉽게 쿠키를 관리할 수 있습니다. 위의 예제를 참고하여 웹 애플리케이션에서 쿠키를 생성, 읽기 및 삭제하는 방법을 익혀보세요!