이전 기사에서는 web.py의 첫 번째 페이지인 hello word에 대해 이야기했습니다. 계속해서 web.py 프로그래밍에 대해 알아보고 web.py의 쿠키 설정에 대해 이야기해 보겠습니다.
쿠키는 웹 프로그래밍을 공부한 사람들에게는 친숙한 존재라고 생각합니다. 웹 프로그래밍에서 매우 중요한 역할을 한다고 생각합니다. 사용자 로그인, 인증코드, 세션(쿠키 기반), 언어 선택, 신원 인식 등 모두 쿠키를 가지고 있습니다. 그렇다면 web.py에서 쿠키를 설정하는 방법은 무엇입니까?
사실 web.py에서 쿠키를 설정하는 것은 매우 간단합니다. web.py는 이미 이를 고려하여 매우 간단하고 유용한 기능을 제공했습니다.
setcookie(name, value, expires="", domain=None, secure=False)
매개변수 세부정보:
name(string) - 브라우저에 의해 저장되고 서버로 전송되는 쿠키의 이름입니다.
값(문자열) - 쿠키 이름에 해당하는 쿠키 값입니다.
expires(int) - 쿠키 만료 시간은 쿠키의 유효 기간을 결정하는 선택적 매개변수입니다. 몇 초 만에. 정수여야 하며 문자열이 아니어야 합니다. 선택적 매개변수입니다. 이 매개변수를 작성하지 않으면 기본적으로 영구적으로 유효합니다.
domain(문자열) - 쿠키의 유효한 도메인 - 쿠키는 이 도메인 내에서 유효합니다. 일반적으로 특정 사이트 내에서 사용 가능하려면 매개변수 값을 사이트 소유자의 호스트 이름(예: wiki.webpy.org)이 아닌 사이트의 도메인(예: .webpy.org)으로 작성해야 합니다. 선택적 매개변수
secure(bool) - True인 경우 이 쿠키는 HTTPS를 통해서만 전송되어야 합니다. 선택적 매개변수
예:
#设置website的值为www.pythontab.com,有效期60秒 web.setcookie("website", "www.pythontab.com", 60)
예
web.setcookie()를 사용하여 다음과 같이 쿠키를 설정합니다.
class CookieSet: def GET(self): i = web.input(age='25') web.setcookie('age', i.age, 3600) return "Age set in your cookie"
GET을 사용하세요. 위 클래스를 호출하면 기본값 25로 age라는 쿠키가 설정됩니다(실제로 기본값 25는 web.input의 i.age에 할당되므로 setcookie 함수에서 직접 할당하는 것이 아니라 간접적으로 쿠키를 할당합니다. 쿠키에 할당됨). 이 쿠키는 1시간(즉, 3600초) 후에 만료됩니다.
web.setcookie()의 세 번째 매개변수인 "expires"는 쿠키 만료 시간을 설정하는 데 사용되는 선택적 매개변수입니다. 음수인 경우 쿠키는 즉시 만료됩니다. 양수인 경우 쿠키가 유효한 기간(초)을 나타냅니다. 이 매개변수가 비어 있으면 쿠키는 만료되지 않습니다.
쿠키 얻기
개요
쿠키의 가치를 얻는 방법에는 여러 가지가 있으며 차이점은 쿠키를 찾을 수 없을 때 어떻게 해야 하는지에 달려 있습니다.
방법 1(쿠키가 없으면 None 반환):
get 메소드를 통해 획득
#通过设置的cookie的名字获取cookie,例如website #web.cookies().get("website") web.cookies().get(cookieName)
방법 2(쿠키를 찾을 수 없으면 AttributeError 예외 발생):
#先把cookie对象赋值给一个变量,然后通过cookie的名字获得 #例如:foo.website foo = web.cookies() foo.cookieName
방법 3(쿠키를 찾을 수 없는 경우 기본값을 설정하여 예외 발생을 방지할 수 있음):
#该方法最大的特点就是可以设置cookie的默认值 foo = web.cookies(cookieName=defaultValue) #如果不存在该cookieName,就会返回设置的默认cookie foo.cookieName
쿠키 값이 존재하는지 확인하려면
다음을 수행하세요.
class CookieGet: def GET(self): try: return "Your website name is: " + web.cookies().website except: #抛出异常处理 return "Cookie 不存在."
또는
class CookieGet: def GET(self): #先进行赋值 website = web.cookies().get('website') if age: return "Your website name is: %s" % website else: return "Cookie 不存在."