我们从Python开源项目中,提取了以下13个代码示例,用于说明如何使用Cookie.BaseCookie()。
def set_cookie(self, key, value='', max_age=None, path='/', domain=None, secure=None, httponly=False, version=None, comment=None): """ Set (add) a cookie for the response """ cookies = BaseCookie() cookies[key] = value for var_name, var_value in [ ('max-age', max_age), ('path', path), ('domain', domain), ('secure', secure), ('HttpOnly', httponly), ('version', version), ('comment', comment), ]: if var_value is not None and var_value is not False: cookies[key][var_name] = str(var_value) if max_age is not None: cookies[key]['expires'] = max_age header_value = cookies[key].output(header='').lstrip() self.handler.add_header(('Set-Cookie', header_value))
def unset_cookie(self, key): """ Unset a cookie with the given name (remove it from the response). If there are multiple cookies (e.g., two cookies with the same name and different paths or domains), all such cookies will be deleted. """ existing = self.handler.headers.get_all('Set-Cookie') if not existing: raise KeyError( "No cookies at all have been set") del self.handler.headers['Set-Cookie'] found = False for header in existing: cookies = BaseCookie() cookies.load(header) if key in cookies: found = True del cookies[key] header = cookies.output(header='').lstrip() if header: self.handler.add_header('Set-Cookie', header) if not found: raise KeyError( "No cookie has been set with the name %r" % key) #end WebOb functions
def InfoPage(self, uri): """ Renders an information page with the POST endpoint and cookie flag. Args: uri: a string containing the request URI Returns: A string with the contents of the info page to be displayed """ page = """ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head> <title>Bulk Loader</title> </head><body>""" page += ('The bulk load endpoint is: <a href="%s">%s</a><br />\n' % (uri, uri)) cookies = os.environ.get('HTTP_COOKIE', None) if cookies: cookie = Cookie.BaseCookie(cookies) for param in ['ACSID', 'dev_appserver_login']: value = cookie.get(param) if value: page += ("Pass this flag to the client: --cookie='%s=%s'\n" % (param, value.value)) break else: page += 'No cookie found!\n' page += '</body></html>' return page
def __init__(self, secret, input=None): self.secret = secret Cookie.BaseCookie.__init__(self, input)
def cookies(self): """A dictionary of Cookie.Morsel objects.""" # ?????,??cookies # ????, ??? if not hasattr(self, "_cookies"): self._cookies = Cookie.BaseCookie() # ?? if "Cookie" in self.request.headers: try: self._cookies.load(self.request.headers["Cookie"]) # ?? except: self.clear_all_cookies() # ???,?? ??????? return self._cookies
def set_cookie(self, name, value, domain=None, expires=None, path="/", expires_days=None, **kwargs): """Sets the given cookie name/value with the given options. Additional keyword arguments are set on the Cookie.Morsel directly. See http://docs.python.org/library/cookie.html#morsel-objects for available attributes. """ name = _utf8(name) value = _utf8(value) if re.search(r"[\x00-\x20]", name + value): # Don't let us accidentally inject bad stuff raise ValueError("Invalid cookie %r: %r" % (name, value)) if not hasattr(self, "_new_cookies"): self._new_cookies = [] new_cookie = Cookie.BaseCookie() self._new_cookies.append(new_cookie) new_cookie[name] = value if domain: new_cookie[name]["domain"] = domain if expires_days is not None and not expires: expires = datetime.datetime.utcnow() + datetime.timedelta( days=expires_days) if expires: timestamp = calendar.timegm(expires.utctimetuple()) new_cookie[name]["expires"] = email.utils.formatdate( timestamp, localtime=False, usegmt=True) if path: new_cookie[name]["path"] = path for k, v in kwargs.iteritems(): new_cookie[name][k] = v
def __init__(self): self._content = 'None' self._content_length = None self._cookies = BaseCookie() self._headers = {HttpResponseHeaders.CONTENT_TYPE: 'text/html'} self._status_code = HttpStatusCodes.HTTP_200
def __init__(self, env): """Create request object from env.""" self._env = env self._env['REQUEST_METHOD'] = self._env['REQUEST_METHOD'].upper() # Load the query params and form params self._query = {} self._query.update(env.get('GET')) self._query.update(env.get('POST', {})) # Load the cookies self._cookies = dict2() for cookie in BaseCookie(env.get('HTTP_COOKIE')).values(): self._cookies[cookie.key] = cookie.value
def get_sid(self, response): cookie = Cookie.BaseCookie(response.headers['Set-Cookie']) return cookie['sid'].value