當前位置: 首頁>>代碼示例>>Python>>正文


Python cherrypy.HTTPRedirect方法代碼示例

本文整理匯總了Python中cherrypy.HTTPRedirect方法的典型用法代碼示例。如果您正苦於以下問題:Python cherrypy.HTTPRedirect方法的具體用法?Python cherrypy.HTTPRedirect怎麽用?Python cherrypy.HTTPRedirect使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在cherrypy的用法示例。


在下文中一共展示了cherrypy.HTTPRedirect方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: do_login

# 需要導入模塊: import cherrypy [as 別名]
# 或者: from cherrypy import HTTPRedirect [as 別名]
def do_login(self, username, password, from_page='..', **kwargs):
        """Login. May raise redirect, or return True if request handled."""
        response = cherrypy.serving.response
        error_msg = self.check_username_and_password(username, password)
        if error_msg:
            body = self.login_screen(from_page, username, error_msg)
            response.body = body
            if 'Content-Length' in response.headers:
                # Delete Content-Length header so finalize() recalcs it.
                del response.headers['Content-Length']
            return True
        else:
            cherrypy.serving.request.login = username
            cherrypy.session[self.session_key] = username
            self.on_login(username)
            raise cherrypy.HTTPRedirect(from_page or '/') 
開發者ID:cherrypy,項目名稱:cherrypy,代碼行數:18,代碼來源:cptools.py

示例2: trailing_slash

# 需要導入模塊: import cherrypy [as 別名]
# 或者: from cherrypy import HTTPRedirect [as 別名]
def trailing_slash(missing=True, extra=False, status=None, debug=False):
    """Redirect if path_info has (missing|extra) trailing slash."""
    request = cherrypy.serving.request
    pi = request.path_info

    if debug:
        cherrypy.log('is_index: %r, missing: %r, extra: %r, path_info: %r' %
                     (request.is_index, missing, extra, pi),
                     'TOOLS.TRAILING_SLASH')
    if request.is_index is True:
        if missing:
            if not pi.endswith('/'):
                new_url = cherrypy.url(pi + '/', request.query_string)
                raise cherrypy.HTTPRedirect(new_url, status=status or 301)
    elif request.is_index is False:
        if extra:
            # If pi == '/', don't redirect to ''!
            if pi.endswith('/') and pi != '/':
                new_url = cherrypy.url(pi[:-1], request.query_string)
                raise cherrypy.HTTPRedirect(new_url, status=status or 301) 
開發者ID:cherrypy,項目名稱:cherrypy,代碼行數:22,代碼來源:cptools.py

示例3: respond

# 需要導入模塊: import cherrypy [as 別名]
# 或者: from cherrypy import HTTPRedirect [as 別名]
def respond(self, path_info):
        """Generate a response for the resource at self.path_info. (Core)"""
        try:
            try:
                try:
                    self._do_respond(path_info)
                except (cherrypy.HTTPRedirect, cherrypy.HTTPError):
                    inst = sys.exc_info()[1]
                    inst.set_response()
                    self.stage = 'before_finalize (HTTPError)'
                    self.hooks.run('before_finalize')
                    cherrypy.serving.response.finalize()
            finally:
                self.stage = 'on_end_resource'
                self.hooks.run('on_end_resource')
        except self.throws:
            raise
        except Exception:
            if self.throw_errors:
                raise
            self.handle_error() 
開發者ID:cherrypy,項目名稱:cherrypy,代碼行數:23,代碼來源:_cprequest.py

示例4: setup_server

# 需要導入模塊: import cherrypy [as 別名]
# 或者: from cherrypy import HTTPRedirect [as 別名]
def setup_server():
        class Root:

            @cherrypy.expose
            def resource(self):
                return 'Oh wah ta goo Siam.'

            @cherrypy.expose
            def fail(self, code):
                code = int(code)
                if 300 <= code <= 399:
                    raise cherrypy.HTTPRedirect([], code)
                else:
                    raise cherrypy.HTTPError(code)

            @cherrypy.expose
            # In Python 3, tools.encode is on by default
            @cherrypy.config(**{'tools.encode.on': True})
            def unicoded(self):
                return ntou('I am a \u1ee4nicode string.', 'escape')

        conf = {'/': {'tools.etags.on': True,
                      'tools.etags.autotags': True,
                      }}
        cherrypy.tree.mount(Root(), config=conf) 
開發者ID:cherrypy,項目名稱:cherrypy,代碼行數:27,代碼來源:test_etags.py

示例5: index

# 需要導入模塊: import cherrypy [as 別名]
# 或者: from cherrypy import HTTPRedirect [as 別名]
def index(self):
		scope="alexa_all"
		sd = json.dumps({
		    "alexa:all": {
		        "productID": ProductID,
		        "productInstanceAttributes": {
		            "deviceSerialNumber": "001"
		        }
		    }
		})
		url = "https://www.amazon.com/ap/oa"
		callback = cherrypy.url()  + "code" 
		payload = {"client_id" : Client_ID, "scope" : "alexa:all", "scope_data" : sd, "response_type" : "code", "redirect_uri" : callback }
		req = requests.Request('GET', url, params=payload)
		p = req.prepare()
		raise cherrypy.HTTPRedirect(p.url) 
開發者ID:alexa-pi,項目名稱:AlexaPiDEPRECATED,代碼行數:18,代碼來源:auth_web.py

示例6: downloadFile

# 需要導入模塊: import cherrypy [as 別名]
# 或者: from cherrypy import HTTPRedirect [as 別名]
def downloadFile(self, file, offset=0, headers=True, endByte=None,
                     **kwargs):

        if 'path' not in file:
            raise Exception('Missing path property')

        full_path = file['path']
        url = '%s/file/%s/%s?view=read' % (self.newt_base_url, self.machine, full_path)
        if headers:
            raise cherrypy.HTTPRedirect(url)
        else:
            session_id = parse('newt.sessionId').find(getCurrentUser())
            if len(session_id) > 0:
                session_id = session_id[0].value

            if session_id is None:
                raise GirderException('Missing NEWT session id')

            def stream():
                cookies = dict(newt_sessionid=session_id)
                r = requests.get(url, cookies=cookies, stream=True)
                for chunk in r.iter_content(chunk_size=BUF_LEN):
                    if chunk:
                        yield chunk
            return stream 
開發者ID:Kitware,項目名稱:cumulus,代碼行數:27,代碼來源:assetstore.py

示例7: do_login

# 需要導入模塊: import cherrypy [as 別名]
# 或者: from cherrypy import HTTPRedirect [as 別名]
def do_login(self, username, password, from_page='..', **kwargs):
        """Login. May raise redirect, or return True if request handled."""
        response = cherrypy.serving.response
        error_msg = self.check_username_and_password(username, password)
        if error_msg:
            body = self.login_screen(from_page, username, error_msg)
            response.body = body
            if "Content-Length" in response.headers:
                # Delete Content-Length header so finalize() recalcs it.
                del response.headers["Content-Length"]
            return True
        else:
            cherrypy.serving.request.login = username
            cherrypy.session[self.session_key] = username
            self.on_login(username)
            raise cherrypy.HTTPRedirect(from_page or "/") 
開發者ID:naparuba,項目名稱:opsbro,代碼行數:18,代碼來源:cptools.py

示例8: run

# 需要導入模塊: import cherrypy [as 別名]
# 或者: from cherrypy import HTTPRedirect [as 別名]
def run(self, point):
        """Execute all registered Hooks (callbacks) for the given point."""
        exc = None
        hooks = self[point]
        hooks.sort()
        for hook in hooks:
            # Some hooks are guaranteed to run even if others at
            # the same hookpoint fail. We will still log the failure,
            # but proceed on to the next hook. The only way
            # to stop all processing from one of these hooks is
            # to raise SystemExit and stop the whole server.
            if exc is None or hook.failsafe:
                try:
                    hook()
                except (KeyboardInterrupt, SystemExit):
                    raise
                except (cherrypy.HTTPError, cherrypy.HTTPRedirect,
                        cherrypy.InternalRedirect):
                    exc = sys.exc_info()[1]
                except:
                    exc = sys.exc_info()[1]
                    cherrypy.log(traceback=True, severity=40)
        if exc:
            raise exc 
開發者ID:naparuba,項目名稱:opsbro,代碼行數:26,代碼來源:_cprequest.py

示例9: run

# 需要導入模塊: import cherrypy [as 別名]
# 或者: from cherrypy import HTTPRedirect [as 別名]
def run(self, point):
        """Execute all registered Hooks (callbacks) for the given point."""
        exc = None
        hooks = self[point]
        hooks.sort()
        for hook in hooks:
            # Some hooks are guaranteed to run even if others at
            # the same hookpoint fail. We will still log the failure,
            # but proceed on to the next hook. The only way
            # to stop all processing from one of these hooks is
            # to raise SystemExit and stop the whole server.
            if exc is None or hook.failsafe:
                try:
                    hook()
                except (KeyboardInterrupt, SystemExit):
                    raise
                except (cherrypy.HTTPError, cherrypy.HTTPRedirect,
                        cherrypy.InternalRedirect):
                    exc = sys.exc_info()[1]
                except Exception:
                    exc = sys.exc_info()[1]
                    cherrypy.log(traceback=True, severity=40)
        if exc:
            raise exc 
開發者ID:Tautulli,項目名稱:Tautulli,代碼行數:26,代碼來源:_cprequest.py

示例10: check_auth

# 需要導入模塊: import cherrypy [as 別名]
# 或者: from cherrypy import HTTPRedirect [as 別名]
def check_auth(*args, **kwargs):
    """A tool that looks in config for 'auth.require'. If found and it
    is not None, a login is required and the entry is evaluated as a list of
    conditions that the user must fulfill"""
    conditions = cherrypy.request.config.get('auth.require', None)
    if conditions is not None:
        payload = check_jwt_token()

        if payload:
            cherrypy.request.login = payload

            for condition in conditions:
                # A condition is just a callable that returns true or false
                if not condition():
                    raise cherrypy.HTTPRedirect(plexpy.HTTP_ROOT)

        else:
            redirect_uri = cherrypy.request.wsgi_environ['REQUEST_URI']
            if redirect_uri:
                redirect_uri = '?redirect_uri=' + quote(redirect_uri)

            raise cherrypy.HTTPRedirect(plexpy.HTTP_ROOT + "auth/logout" + redirect_uri) 
開發者ID:Tautulli,項目名稱:Tautulli,代碼行數:24,代碼來源:webauth.py

示例11: logout

# 需要導入模塊: import cherrypy [as 別名]
# 或者: from cherrypy import HTTPRedirect [as 別名]
def logout(self, redirect_uri='', *args, **kwargs):
        self.check_auth_enabled()

        payload = check_jwt_token()
        if payload:
            self.on_logout(payload['user'], payload['user_group'])

        jwt_cookie = str(JWT_COOKIE_NAME + plexpy.CONFIG.PMS_UUID)
        cherrypy.response.cookie[jwt_cookie] = ''
        cherrypy.response.cookie[jwt_cookie]['expires'] = 0
        cherrypy.response.cookie[jwt_cookie]['path'] = plexpy.HTTP_ROOT.rstrip('/') or '/'

        if plexpy.HTTP_ROOT != '/':
            # Also expire the JWT on the root path
            cherrypy.response.headers['Set-Cookie'] = jwt_cookie + '=""; expires=Thu, 01 Jan 1970 12:00:00 GMT; path=/'

        cherrypy.request.login = None

        if redirect_uri:
            redirect_uri = '?redirect_uri=' + redirect_uri

        raise cherrypy.HTTPRedirect(plexpy.HTTP_ROOT + "auth/login" + redirect_uri) 
開發者ID:Tautulli,項目名稱:Tautulli,代碼行數:24,代碼來源:webauth.py

示例12: index

# 需要導入模塊: import cherrypy [as 別名]
# 或者: from cherrypy import HTTPRedirect [as 別名]
def index(self):
        sd = json.dumps({
            "alexa:all": {
                "productID": self.config['ProductID'],
                "productInstanceAttributes": {
                    "deviceSerialNumber": "123456"
                }
            }
        })
        callback = cherrypy.url() + "code"
        payload = {
            "client_id": self.config['Client_ID'],
            "scope": "alexa:all",
            "scope_data": sd,
            "response_type": "code",
            "redirect_uri": callback
        }
        req = requests.Request('GET', "https://www.amazon.com/ap/oa", params=payload)
        p = req.prepare()
        raise cherrypy.HTTPRedirect(p.url) 
開發者ID:nicholasjconn,項目名稱:python-alexa-voice-service,代碼行數:22,代碼來源:authorization.py

示例13: trailing_slash

# 需要導入模塊: import cherrypy [as 別名]
# 或者: from cherrypy import HTTPRedirect [as 別名]
def trailing_slash(missing=True, extra=False, status=None, debug=False):
    """Redirect if path_info has (missing|extra) trailing slash."""
    request = cherrypy.serving.request
    pi = request.path_info
    
    if debug:
        cherrypy.log('is_index: %r, missing: %r, extra: %r, path_info: %r' %
                     (request.is_index, missing, extra, pi),
                     'TOOLS.TRAILING_SLASH')
    if request.is_index is True:
        if missing:
            if not pi.endswith('/'):
                new_url = cherrypy.url(pi + '/', request.query_string)
                raise cherrypy.HTTPRedirect(new_url, status=status or 301)
    elif request.is_index is False:
        if extra:
            # If pi == '/', don't redirect to ''!
            if pi.endswith('/') and pi != '/':
                new_url = cherrypy.url(pi[:-1], request.query_string)
                raise cherrypy.HTTPRedirect(new_url, status=status or 301) 
開發者ID:binhex,項目名稱:moviegrabber,代碼行數:22,代碼來源:cptools.py

示例14: setup_server

# 需要導入模塊: import cherrypy [as 別名]
# 或者: from cherrypy import HTTPRedirect [as 別名]
def setup_server():
        class Root:
            def resource(self):
                return "Oh wah ta goo Siam."
            resource.exposed = True
            
            def fail(self, code):
                code = int(code)
                if 300 <= code <= 399:
                    raise cherrypy.HTTPRedirect([], code)
                else:
                    raise cherrypy.HTTPError(code)
            fail.exposed = True
            
            def unicoded(self):
                return ntou('I am a \u1ee4nicode string.', 'escape')
            unicoded.exposed = True
            # In Python 3, tools.encode is on by default
            unicoded._cp_config = {'tools.encode.on': True}
        
        conf = {'/': {'tools.etags.on': True,
                      'tools.etags.autotags': True,
                      }}
        cherrypy.tree.mount(Root(), config=conf) 
開發者ID:binhex,項目名稱:moviegrabber,代碼行數:26,代碼來源:test_etags.py

示例15: index

# 需要導入模塊: import cherrypy [as 別名]
# 或者: from cherrypy import HTTPRedirect [as 別名]
def index(self, uid='', iss=''):
        link = ''
        if iss:
            link = iss
        elif uid:
            pass
        else:
            fname = os.path.join(self.html_home, 'opbyuid.html')
            return as_bytes(open(fname, 'r').read())

        if link or uid:
            if uid:
                args = {'user_id': uid}
            else:
                args = {}
            try:
                result = self.rph.begin(link, **args)
            except Exception as err:
                raise cherrypy.HTTPError(message='{}'.format(err))
            else:
                raise cherrypy.HTTPRedirect(result['url']) 
開發者ID:IdentityPython,項目名稱:JWTConnect-Python-OidcRP,代碼行數:23,代碼來源:cprp.py


注:本文中的cherrypy.HTTPRedirect方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。