本文整理汇总了Python中webob.Request.remove_conditional_headers方法的典型用法代码示例。如果您正苦于以下问题:Python Request.remove_conditional_headers方法的具体用法?Python Request.remove_conditional_headers怎么用?Python Request.remove_conditional_headers使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类webob.Request
的用法示例。
在下文中一共展示了Request.remove_conditional_headers方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __call__
# 需要导入模块: from webob import Request [as 别名]
# 或者: from webob.Request import remove_conditional_headers [as 别名]
def __call__(self, environ, start_response):
req = Request(environ)
req.remove_conditional_headers()
resp = req.get_response(self.app)
if resp.content_type == 'text/html':
resp.body = jumble_words(resp.body)
return resp(environ, start_response)
示例2: get_wordpress_content
# 需要导入模块: from webob import Request [as 别名]
# 或者: from webob.Request import remove_conditional_headers [as 别名]
def get_wordpress_content(cls, environ, path):
from plugin import WordpresserException
# grab the WP page -- we always need it for the nav, at least,
# and optionally for content when we get a 404 from CKAN.
proxy_host = config.get('wordpresser.proxy_host')
#del environ['CONTENT_TYPE']
#del environ['HTTP_ACCEPT_CHARSET']
req = Request(environ)
req.remove_conditional_headers(remove_encoding=True)
follow = True
proxy_url = proxy_host
while follow:
# deal with redirects internal to Wordpress
try:
wp_resp = req.get_response(paste.proxy.Proxy(proxy_url))
except gaierror,e:
msg = "Address-related error: %s (%s)" % (str(e),proxy_host)
raise WordpresserException(msg)
follow = wp_resp.status_int == 301 \
and proxy_host in wp_resp.location
environ['PATH_INFO'] = '/'
proxy_url = wp_resp.location
req = Request(environ)
示例3: __call__
# 需要导入模块: from webob import Request [as 别名]
# 或者: from webob.Request import remove_conditional_headers [as 别名]
def __call__(self, environ, start_response):
req = Request(environ)
req.flash = Flash()
req.flash.info('info message display with Flash.render()')
req.flash.warn('warning message')
req.flash.error('error message')
req.flash.critical('critical message is sticky')
req.inline_flash = Flash()
req.inline_flash.info('info message display with Flash.render_inline()')
req.inline_flash.warn('warning message')
req.inline_flash.error('error message')
req.inline_flash.critical('critical message is sticky')
if req.path.endswith('/fa.jquery/ajax_values'):
resp = Response()
resp.content_type='application/json'
resp.body = simplejson.dumps([{'value':'Ajax'},{'value':'Borax'},{'value':'Corax'}, {'value':'Dorax'},{'value':'Manix'}])
elif req.path.endswith('/fa.jquery/demo.html'):
req.remove_conditional_headers()
script_name = req.environ.get('HTTP_X_FORWARDED_PATH', '')
Form.ajax.set(renderer=AutoCompleteFieldRenderer(script_name+'/fa.jquery/ajax_values'))
obj = Form.gen_model()
obj.context['slider'] = '10'
obj.context['sortable'] = '1;2;3'
obj.context['radioset'] = 'd'
obj.context['checkboxset'] = ['b', 'a']
obj.context['selectable'] = 'f'
obj.context['selectables'] = ['b', 'c']
fs = Form.bind(obj, data=req.POST or None)
tabs = Tabs('my_tabs',
('tab1', 'My first tab', fs1),
('tab2', 'The second', fs2),
footer='<input type="submit" name="%(id)s" />')
tabs.tab1.rebind(fs1.gen_model(), data=req.POST or None)
tabs.tab2.rebind(fs2.gen_model(), data=req.POST or None)
accordion = Accordion('my_accordion',
('tab1', 'My first section', fs3),
('tab2', 'The second', fs4),
footer='<input type="submit" name="%(id)s" />')
accordion.tab1.rebind(fs3.gen_model(), data=req.POST or None)
accordion.tab2.rebind(fs4.gen_model(), data=req.POST or None)
if req.POST:
if fs.validate():
fs.sync()
if tabs.validate():
tabs.sync()
if accordion.validate():
accordion.sync()
template = templates.get_template('index.mako')
head = templates.get_template('head.mako').render()
body = template.render(req=req, fs=fs, tabs=tabs, accordion=accordion,
headers=self.headers,
head=head, mim=req.GET.get('mim', False))
if self.headers:
resp = Response()
resp.body = body
else:
req.method = 'get'
resp = req.get_response(self.app)
resp.body = resp.body.replace('</head>', head+'</head>')
resp.body = resp.body.replace('<div id="demo"></div>', body)
else:
return self.app(environ, start_response)
return resp(environ, start_response)
示例4: __call__
# 需要导入模块: from webob import Request [as 别名]
# 或者: from webob.Request import remove_conditional_headers [as 别名]
def __call__(self, environ, start_response):
request = Request(environ)
if self.should_ignore(request):
return self.app(environ, start_response)
if self.remove_conditional_headers:
request.remove_conditional_headers()
else:
# Always remove Range and Accept-Encoding headers
request.remove_conditional_headers(
remove_encoding=True,
remove_range=False,
remove_match=False,
remove_modified=True,
)
response = request.get_response(self.app)
if not self.should_transform(response):
return response(environ, start_response)
try:
input_encoding = response.charset
# Note, the Content-Length header will not be set
if request.method == 'HEAD':
self.reset_headers(response)
return response(environ, start_response)
# Prepare the serializer
try:
serializer = getHTMLSerializer(
response.app_iter,
encoding=input_encoding,
)
except etree.XMLSyntaxError:
# Abort transform on syntax error for empty response
# Headers should be left intact
return response(environ, start_response)
finally:
if getattr(response.app_iter, 'close', None):
response.app_iter.close()
self.reset_headers(response)
# Set up parameters
params = {}
for key, value in self.environ_param_map.items():
if key in environ:
if value in self.unquoted_params:
params[value] = environ[key]
else:
params[value] = quote_param(environ[key])
for key, value in self.params.items():
if key in self.unquoted_params:
params[key] = value
else:
params[key] = quote_param(value)
# Apply the transformation
tree = self.transform(serializer.tree, **params)
# Set content type (normally inferred from stylesheet)
# Unfortunately lxml does not expose docinfo.mediaType
if self.content_type is None:
if tree.getroot().tag == 'html':
response.content_type = 'text/html'
else:
response.content_type = 'text/xml'
response.charset = tree.docinfo.encoding or self.charset
# Return a repoze.xmliter XMLSerializer, which helps avoid re-parsing
# the content tree in later middleware stages.
response.app_iter = XMLSerializer(tree, doctype=self.doctype)
# Calculate the content length - we still return the parsed tree
# so that other middleware could avoid having to re-parse, even if
# we take a hit on serialising here
if self.update_content_length:
response.content_length = len(bytes(response.app_iter))
return response(environ, start_response)
示例5: __call__
# 需要导入模块: from webob import Request [as 别名]
# 或者: from webob.Request import remove_conditional_headers [as 别名]
def __call__(self, environ, start_response):
req = Request(environ)
req.remove_conditional_headers()
res = req.get_response(self.app)
return res(environ, start_response)