本文整理汇总了Python中werkzeug.datastructures.Headers.to_list方法的典型用法代码示例。如果您正苦于以下问题:Python Headers.to_list方法的具体用法?Python Headers.to_list怎么用?Python Headers.to_list使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类werkzeug.datastructures.Headers
的用法示例。
在下文中一共展示了Headers.to_list方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: add_cors_headers
# 需要导入模块: from werkzeug.datastructures import Headers [as 别名]
# 或者: from werkzeug.datastructures.Headers import to_list [as 别名]
def add_cors_headers(status, headers, exc_info=None):
headers = Headers(headers)
headers.add("Access-Control-Allow-Origin", self.origin(environ))
headers.add("Access-Control-Allow-Headers", "Origin, Content-Type")
headers.add("Access-Control-Allow-Credentials", "true")
headers.add("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE")
headers.add("Access-Control-Expose-Headers", "X-Set-Cookie")
return start_response(status, headers.to_list(), exc_info)
示例2: add_cors_headers
# 需要导入模块: from werkzeug.datastructures import Headers [as 别名]
# 或者: from werkzeug.datastructures.Headers import to_list [as 别名]
def add_cors_headers(status, headers, exc_info=None):
headers = Headers(headers)
headers.add("Access-Control-Allow-Origin", self.origin(environ))
headers.add("Access-Control-Allow-Credentials", "true")
headers.add("Access-Control-Allow-Methods", ", ".join(self.methods))
if self.allowed:
headers.add("Access-Control-Allow-Headers", ", ".join(self.allowed))
if self.exposed:
headers.add("Access-Control-Expose-Headers", ", ".join(self.exposed))
return start_response(status, headers.to_list(), exc_info)
示例3: add_cors_headers
# 需要导入模块: from werkzeug.datastructures import Headers [as 别名]
# 或者: from werkzeug.datastructures.Headers import to_list [as 别名]
def add_cors_headers(status, headers, exc_info=None):
headers = Headers(headers)
headers.add("Access-Control-Allow-Origin",
get_origin(status, headers))
headers.add("Access-Control-Allow-Headers",
cfg.get("cors_headers"))
headers.add("Access-Control-Allow-Credentials",
cfg.get("cors_credentials"))
headers.add("Access-Control-Allow-Methods",
cfg.get("cors_methods"))
headers.add("Access-Control-Expose-Headers",
cfg.get("cors_expose_headers"))
return start_response(status, headers.to_list(), exc_info)
示例4: add_cors_headers
# 需要导入模块: from werkzeug.datastructures import Headers [as 别名]
# 或者: from werkzeug.datastructures.Headers import to_list [as 别名]
def add_cors_headers(status, headers, exc_info=None):
for host in self.hosts:
if environ.get("HTTP_ORIGIN", None) == host.rstrip("/"):
origin = host.rstrip("/")
break
else:
origin = host.rstrip("/")
headers = Headers(headers)
headers.add("Access-Control-Allow-Origin", origin)
headers.add("Access-Control-Allow-Headers", "Origin, Content-Type")
headers.add("Access-Control-Allow-Credentials", "true")
headers.add("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE")
headers.add("Access-Control-Expose-Headers", "X-Set-Cookie")
return start_response(status, headers.to_list(), exc_info)
示例5: BaseResponse
# 需要导入模块: from werkzeug.datastructures import Headers [as 别名]
# 或者: from werkzeug.datastructures.Headers import to_list [as 别名]
#.........这里部分代码省略.........
if mutable and not isinstance(self.response, list):
self.response = list(self.response)
return
if not self.implicit_sequence_conversion:
raise RuntimeError('The response object required the iterable to be a sequence, but the implicit conversion was disabled. Call make_sequence() yourself.')
self.make_sequence()
def make_sequence(self):
if not self.is_sequence:
close = getattr(self.response, 'close', None)
self.response = list(self.iter_encoded())
if close is not None:
self.call_on_close(close)
def iter_encoded(self, charset = None):
if __debug__ and charset is not None:
from warnings import warn
warn(DeprecationWarning('charset was deprecated and is ignored.'), stacklevel=2)
charset = self.charset
for item in self.response:
if isinstance(item, unicode):
yield item.encode(charset)
else:
yield str(item)
def set_cookie(self, key, value = '', max_age = None, expires = None, path = '/', domain = None, secure = None, httponly = False):
self.headers.add('Set-Cookie', dump_cookie(key, value, max_age, expires, path, domain, secure, httponly, self.charset))
def delete_cookie(self, key, path = '/', domain = None):
self.set_cookie(key, expires=0, max_age=0, path=path, domain=domain)
@property
def header_list(self):
return self.headers.to_list(self.charset)
@property
def is_streamed(self):
try:
len(self.response)
except TypeError:
return True
return False
@property
def is_sequence(self):
return isinstance(self.response, (tuple, list))
def close(self):
if hasattr(self.response, 'close'):
self.response.close()
for func in self._on_close:
func()
def freeze(self):
self.response = list(self.iter_encoded())
self.headers['Content-Length'] = str(sum(map(len, self.response)))
def fix_headers(self, environ):
self.headers[:] = self.get_wsgi_headers(environ)
def get_wsgi_headers(self, environ):
headers = Headers(self.headers)
location = headers.get('location')
if location is not None:
if isinstance(location, unicode):
示例6: test_headers
# 需要导入模块: from werkzeug.datastructures import Headers [as 别名]
# 或者: from werkzeug.datastructures.Headers import to_list [as 别名]
def test_headers():
# simple header tests
headers = Headers()
headers.add('Content-Type', 'text/plain')
headers.add('X-Foo', 'bar')
assert 'x-Foo' in headers
assert 'Content-type' in headers
headers['Content-Type'] = 'foo/bar'
assert headers['Content-Type'] == 'foo/bar'
assert len(headers.getlist('Content-Type')) == 1
# list conversion
assert headers.to_list() == [
('Content-Type', 'foo/bar'),
('X-Foo', 'bar')
]
assert str(headers) == (
"Content-Type: foo/bar\r\n"
"X-Foo: bar\r\n"
"\r\n")
assert str(Headers()) == "\r\n"
# extended add
headers.add('Content-Disposition', 'attachment', filename='foo')
assert headers['Content-Disposition'] == 'attachment; filename=foo'
headers.add('x', 'y', z='"')
assert headers['x'] == r'y; z="\""'
# defaults
headers = Headers([
('Content-Type', 'text/plain'),
('X-Foo', 'bar'),
('X-Bar', '1'),
('X-Bar', '2')
])
assert headers.getlist('x-bar') == ['1', '2']
assert headers.get('x-Bar') == '1'
assert headers.get('Content-Type') == 'text/plain'
assert headers.setdefault('X-Foo', 'nope') == 'bar'
assert headers.setdefault('X-Bar', 'nope') == '1'
assert headers.setdefault('X-Baz', 'quux') == 'quux'
assert headers.setdefault('X-Baz', 'nope') == 'quux'
headers.pop('X-Baz')
# type conversion
assert headers.get('x-bar', type=int) == 1
assert headers.getlist('x-bar', type=int) == [1, 2]
# list like operations
assert headers[0] == ('Content-Type', 'text/plain')
assert headers[:1] == Headers([('Content-Type', 'text/plain')])
del headers[:2]
del headers[-1]
assert headers == Headers([('X-Bar', '1')])
# copying
a = Headers([('foo', 'bar')])
b = a.copy()
a.add('foo', 'baz')
assert a.getlist('foo') == ['bar', 'baz']
assert b.getlist('foo') == ['bar']
headers = Headers([('a', 1)])
assert headers.pop('a') == 1
assert headers.pop('b', 2) == 2
assert_raises(KeyError, headers.pop, 'c')
# set replaces and accepts same arguments as add
a = Headers()
a.set('Content-Disposition', 'useless')
a.set('Content-Disposition', 'attachment', filename='foo')
assert a['Content-Disposition'] == 'attachment; filename=foo'