本文整理汇总了Python中wsgiref.util.guess_scheme函数的典型用法代码示例。如果您正苦于以下问题:Python guess_scheme函数的具体用法?Python guess_scheme怎么用?Python guess_scheme使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了guess_scheme函数的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
def __init__(self, environ, start_response):
self.__environ = environ
self.__start_response = start_response
self.__response_sent_p = False
self.__buffer = ''
self.__low_level_headers = []
self.__headers = table(self.__low_level_headers)
self.__headers.add = self.__headers.add_header
self.__status = "200 OK"
self.__filename = None
self.__disposition_type = None
self.__bytes_sent = 0
self.__allowed_methods = []
self.__cleanups = []
self.headers_out = self.__headers
## See: <http://www.python.org/dev/peps/pep-0333/#the-write-callable>
self.__write = None
self.__write_error = False
self.__errors = environ['wsgi.errors']
self.__headers_in = table([])
self.__tainted = False
self.__is_https = int(guess_scheme(self.__environ) == 'https')
self.__replace_https = False
self.track_writings = False
self.__what_was_written = ""
for key, value in environ.iteritems():
if key.startswith('HTTP_'):
self.__headers_in[key[len('HTTP_'):].replace('_', '-')] = value
if environ.get('CONTENT_LENGTH'):
self.__headers_in['content-length'] = environ['CONTENT_LENGTH']
if environ.get('CONTENT_TYPE'):
self.__headers_in['content-type'] = environ['CONTENT_TYPE']
示例2: recv
def recv(self, wsgi=False):
try:
stream = HttpStream(self.reader, kind=HTTP_REQUEST, parser_class=HttpParser, decompress=True)
if bool(wsgi):
environ = stream.wsgi_environ()
environ['wsgi.url_scheme'] = guess_scheme(environ)
environ['wsgi.input'] = stream.body_file()
environ['wsgi.socket'] = self.socket
return environ
# BUG:
# http-parser has an issue here, if we call 'method' before 'headers'
# and invalid method name is returned...
fields = stream.headers()
method = stream.method()
url = stream.url()
version = stream.version()
content = stream.body_file()
url = urlparse(url)
path = url.path
query = parse_qs(url.query, keep_blank_values=True)
fragment = url.fragment
for k, v in six.iteritems(dict(query)):
query[k] = parse_query_value(v)
self.version = 'HTTP/%s.%s' % version
return method, path, query, fragment, fields, content
except NoMoreData:
pass
示例3: _getURL
def _getURL(env, local, full=False):
url = urlparse.urljoin(env['SCRIPT_NAME'], local)
if full:
url = urlparse.urljoin("%s://%s" % (guess_scheme(env), env['HTTP_HOST']), url)
return url
示例4: wrapped
def wrapped(environ, start_response):
domain = os.environ.get('DOMAIN')
if domain and environ['HTTP_HOST'] != domain:
path = environ.get('PATH_INFO', '')
protocol = guess_scheme(environ)
start_response('301 Redirect', [('Location', '%s://%s%s' % (protocol, domain, path)),])
return []
return fn(environ, start_response)
示例5: _metadata
def _metadata(self):
environ = self.filtered_environ
data = {}
data['HTTP_SCHEME'] = guess_scheme(environ)
cgi_vars = data['CGI Variables'] = {}
wsgi_vars = data['WSGI Variables'] = {}
hide_vars = ['wsgi.errors', 'wsgi.input',
'wsgi.multithread', 'wsgi.multiprocess',
'wsgi.run_once', 'wsgi.version',
'wsgi.url_scheme', 'webob._parsed_cookies']
for name, value in environ.items():
if name.upper() == name:
if name in os.environ: # Skip OS environ variables
continue
if value:
cgi_vars[name] = value
elif name not in hide_vars:
wsgi_vars[name] = value
proc_desc = tuple([int(bool(environ[key]))
for key in ('wsgi.multiprocess',
'wsgi.multithread',
'wsgi.run_once')])
wsgi_vars['wsgi process'] = self.process_combos[proc_desc]
return {'fields': data, 'filter_sensitive': self._filter_sensitive}
示例6: testGuessScheme
def testGuessScheme(self):
self.assertEqual(util.guess_scheme({}), "http")
self.assertEqual(util.guess_scheme({'HTTPS':"foo"}), "http")
self.assertEqual(util.guess_scheme({'HTTPS':"on"}), "https")
self.assertEqual(util.guess_scheme({'HTTPS':"yes"}), "https")
self.assertEqual(util.guess_scheme({'HTTPS':"1"}), "https")
示例7: is_https
def is_https(self):
return int(guess_scheme(self.__environ) == "https")
示例8: is_https
def is_https(self):
scheme = self.__environ.get('wsgi.url_scheme', guess_scheme(self.__environ))
return int(scheme == 'https')
示例9: get_scheme
def get_scheme(self):
"""Return the URL scheme being used"""
return guess_scheme(self.environ)
示例10: main
def main(argv=sys.argv):
"""
Run the WSGI application using :mod:`wsgiref`.
"""
parser = argparse.ArgumentParser(description="A PyPI-style documentation server.")
parser.add_argument(
"--host",
help="hostname or address to bind server to",
default="localhost",
)
parser.add_argument(
"--port",
help="port to run server on",
type=int,
default=8080,
)
parser.add_argument(
"--store",
help="path to bundle store directory",
default="~/docstore",
)
parser.add_argument(
"--template",
help="path to frontpage template",
type=str,
)
parser.add_argument(
"--print-template",
action="store_true",
)
args = parser.parse_args()
if args.print_template:
print(DEFAULT_FRONTPAGE)
return 0
print(args)
store = os.path.realpath(os.path.expanduser(args.store))
if 0 > args.port > 65535:
print("Bad port:", args.port, file=sys.stderr)
return 1
try:
app = create_application(None, store=store, template=args.template)
except BadPath as exc:
print(exc, file=sys.stderr)
return 1
logging.basicConfig(level=logging.INFO, stream=sys.stderr)
from wsgiref.util import guess_scheme
scheme = guess_scheme(os.environ)
print(
"Serving on {}://{}:{}/".format(scheme, args.host, args.port),
file=sys.stderr,
)
from wsgiref.simple_server import make_server
make_server(args.host, args.port, app).serve_forever()
return 0