当前位置: 首页>>代码示例>>Python>>正文


Python urls.url_decode函数代码示例

本文整理汇总了Python中werkzeug.urls.url_decode函数的典型用法代码示例。如果您正苦于以下问题:Python url_decode函数的具体用法?Python url_decode怎么用?Python url_decode使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了url_decode函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: qyApp3receive

def qyApp3receive():
    sReqMsgSig = request.args.get('msg_signature')
    sReqTimeStamp = request.args.get('timestamp')
    sReqNonce = request.args.get('nonce')

    if request.method == 'GET':
        # wxcpt = WXBizMsgCrypt(TOKEN_QY, AESKEY_QY, APP_ID_QY)
        ret, sEchoStr = wxcpt.VerifyURL(url_decode(request.query_string)['msg_signature'],
                                        url_decode(request.query_string)['timestamp'],
                                        url_decode(request.query_string)['nonce'],
                                        url_decode(request.query_string)['echostr'])
        # print ret

        return sEchoStr

    retXML = ''

    ret, decodeXML = getDecryptMsg(request.data, sReqMsgSig, sReqTimeStamp, sReqNonce)
    if decodeXML:
        userid = decodeXML.find("FromUserName").text
        my = decodeXML.find("ToUserName").text

        retXML += '<xml>'
        retXML += '<ToUserName><![CDATA[' + userid + ']]></ToUserName>'
        retXML += '<FromUserName><![CDATA[' + my + ']]></FromUserName>'
        retXML += '<CreateTime>' + str(int(sysTime.time() * 1000)) + '</CreateTime>'
        retXML += '<MsgType><![CDATA[text]]></MsgType>'
        retXML += '<Content><![CDATA[%s]]></Content>'
        retXML += '</xml>'
        retXML = retXML.replace('&lt;', '<').replace('&gt;', '>')

        msgType = decodeXML.find("MsgType").text
        if msgType == 'text':
            content = decodeXML.find("Content").text
            if content != '':
                userid = decodeXML.find("FromUserName").text
                app.logger.info(content)
                ret = getPsnPhoneVOs(u'oGWhot6q83jPLENglsitEv1xjYCw', content)
                if ret['code'] != 0:
                    retXML = retXML % ret['msg'].encode('utf-8')
                else:
                    rsMsg = ''
                    for psn in ret['psn']:
                        rsMsg += '【' + str(psn['psnname']) + '】\n'
                        rsMsg += ((psn['email'] == 'null' or psn['email'] == '') and '' or (
                            u'\U00002709'.encode('utf-8') + str(psn['email']) + '\n'))
                        if (psn['yglb'] != "0001V410000000001OPY"):
                            rsMsg += ((psn['officephone'] == 'null' or psn['officephone'] == '') and '' or (
                                u'\U0000260E'.encode('utf-8') + str(psn['officephone']) + '\n'))
                            rsMsg += ((psn['mobile'] == 'null' or psn['mobile'] == '') and '' or (
                                u'\U0001F4F1'.encode('utf-8') + str(psn['mobile']) + '\n'))

                    retXML = retXML % rsMsg

    ret, sEncryptMsg = wxcpt.EncryptMsg(retXML, sReqNonce, sReqTimeStamp)

    return sEncryptMsg
开发者ID:htxstc1984,项目名称:weixinService_py,代码行数:57,代码来源:qy_weixin_config_controller.py

示例2: test_redirect_to_records

    def test_redirect_to_records(self):

        self.company_A = self.env['res.company'].create({
            'name': 'Company A',
            'user_ids': [(4, self.ref('base.user_admin'))],
        })

        self.company_B = self.env['res.company'].create({
            'name': 'Company B',
        })

        self.multi_company_record = self.env['mail.test.multi.company'].create({
            'name': 'Multi Company Record',
            'company_id': self.company_A.id,
        })

        # Test Case 0
        # Not logged, redirect to web/login
        response = self.url_open('/mail/view?model=%s&res_id=%s' % (
            self.multi_company_record._name,
            self.multi_company_record.id), timeout=15)

        path = url_parse(response.url).path
        self.assertEqual(path, '/web/login')

        self.authenticate('admin', 'admin')

        # Test Case 1
        # Logged into company 1, try accessing record in company A
        # _redirect_to_record should add company A in allowed_company_ids
        response = self.url_open('/mail/view?model=%s&res_id=%s' % (
            self.multi_company_record._name,
            self.multi_company_record.id), timeout=15)

        self.assertEqual(response.status_code, 200)

        fragment = url_parse(response.url).fragment
        cids = url_decode(fragment)['cids']

        self.assertEqual(cids, '1,%s' % (self.company_A.id))

        # Test Case 2
        # Logged into company 1, try accessing record in company B
        # _redirect_to_record should redirect to messaging as the user
        # doesn't have any access for this company
        self.multi_company_record.company_id = self.company_B

        response = self.url_open('/mail/view?model=%s&res_id=%s' % (
            self.multi_company_record._name,
            self.multi_company_record.id), timeout=15)

        self.assertEqual(response.status_code, 200)

        fragment = url_parse(response.url).fragment
        action = url_decode(fragment)['action']

        self.assertEqual(action, 'mail.action_discuss')
开发者ID:Vauxoo,项目名称:odoo,代码行数:57,代码来源:test_multi_company.py

示例3: qyAppSubscribe

def qyAppSubscribe():
    sReqMsgSig = request.args.get('msg_signature')
    sReqTimeStamp = request.args.get('timestamp')
    sReqNonce = request.args.get('nonce')

    if request.method == 'GET':
        # wxcpt = WXBizMsgCrypt(TOKEN_QY, AESKEY_QY, APP_ID_QY)
        ret, sEchoStr = wxcpt.VerifyURL(url_decode(request.query_string)['msg_signature'],
                                        url_decode(request.query_string)['timestamp'],
                                        url_decode(request.query_string)['nonce'],
                                        url_decode(request.query_string)['echostr'])
        # print ret

        return sEchoStr

    # app.logger.info(request.data)
    # app.logger.info(sReqMsgSig)
    # app.logger.info(sReqTimeStamp)
    # app.logger.info(sReqNonce)

    ret, decodeXML = getDecryptMsg(request.data, sReqMsgSig, sReqTimeStamp, sReqNonce)
    # app.logger.info(str(ret))
    # app.logger.info(decodeXML)
    if decodeXML:
        userid = decodeXML.find("FromUserName").text
        my = decodeXML.find("ToUserName").text
        app.logger.info(userid)
        msgType = decodeXML.find("MsgType").text
        if msgType == 'event':
            event = decodeXML.find("Event").text
            if event == 'subscribe':
                userid = decodeXML.find("FromUserName").text
                detail = getPsnDetail(userid)
                if detail.has_key('weixinid'):
                    psn = wx_session.query(Document_psn).filter(Document_psn.qywxid == userid).first()
                    psn.weixinid = detail['weixinid']
                    wx_session.merge(psn)
                    wx_session.commit()

                retXML = ''
                retXML += '<xml>'
                retXML += '<ToUserName><![CDATA[' + userid + ']]></ToUserName>'
                retXML += '<FromUserName><![CDATA[' + my + ']]></FromUserName>'
                retXML += '<CreateTime>' + str(int(sysTime.time() * 1000)) + '</CreateTime>'
                retXML += '<MsgType><![CDATA[text]]></MsgType>'
                retXML += '<Content><![CDATA[欢迎关注国贸集团企业号,获取公司内部网信息,增进交流,提升工作效率。]]></Content>'
                retXML += '</xml>'
                retXML = retXML.replace('&lt;', '<').replace('&gt;', '>')

                ret, sEncryptMsg = wxcpt.EncryptMsg(retXML, sReqNonce, sReqTimeStamp)

                return sEncryptMsg

    return ''
开发者ID:htxstc1984,项目名称:weixinService_py,代码行数:54,代码来源:qy_weixin_config_controller.py

示例4: test_url_decoding

def test_url_decoding():
    x = urls.url_decode(b"foo=42&bar=23&uni=H%C3%A4nsel")
    strict_eq(x["foo"], u"42")
    strict_eq(x["bar"], u"23")
    strict_eq(x["uni"], u"Hänsel")

    x = urls.url_decode(b"foo=42;bar=23;uni=H%C3%A4nsel", separator=b";")
    strict_eq(x["foo"], u"42")
    strict_eq(x["bar"], u"23")
    strict_eq(x["uni"], u"Hänsel")

    x = urls.url_decode(b"%C3%9Ch=H%C3%A4nsel", decode_keys=True)
    strict_eq(x[u"Üh"], u"Hänsel")
开发者ID:pallets,项目名称:werkzeug,代码行数:13,代码来源:test_urls.py

示例5: test_url_decoding

    def test_url_decoding(self):
        x = urls.url_decode("foo=42&bar=23&uni=H%C3%A4nsel")
        assert x["foo"] == "42"
        assert x["bar"] == "23"
        assert x["uni"] == u"Hänsel"

        x = urls.url_decode("foo=42;bar=23;uni=H%C3%A4nsel", separator=";")
        assert x["foo"] == "42"
        assert x["bar"] == "23"
        assert x["uni"] == u"Hänsel"

        x = urls.url_decode("%C3%9Ch=H%C3%A4nsel", decode_keys=True)
        assert x[u"Üh"] == u"Hänsel"
开发者ID:FakeSherlock,项目名称:Report,代码行数:13,代码来源:urls.py

示例6: test_url_decoding

    def test_url_decoding(self):
        x = urls.url_decode(b'foo=42&bar=23&uni=H%C3%A4nsel')
        self.assert_strict_equal(x['foo'], u'42')
        self.assert_strict_equal(x['bar'], u'23')
        self.assert_strict_equal(x['uni'], u'Hänsel')

        x = urls.url_decode(b'foo=42;bar=23;uni=H%C3%A4nsel', separator=b';')
        self.assert_strict_equal(x['foo'], u'42')
        self.assert_strict_equal(x['bar'], u'23')
        self.assert_strict_equal(x['uni'], u'Hänsel')

        x = urls.url_decode(b'%C3%9Ch=H%C3%A4nsel', decode_keys=True)
        self.assert_strict_equal(x[u'Üh'], u'Hänsel')
开发者ID:ArslanRafique,项目名称:werkzeug,代码行数:13,代码来源:urls.py

示例7: parse_form_data

def parse_form_data(environ, stream_factory = None, charset = 'utf-8', errors = 'ignore', max_form_memory_size = None, max_content_length = None, cls = None, silent = True):
    content_type, extra = parse_options_header(environ.get('CONTENT_TYPE', ''))
    try:
        content_length = int(environ['CONTENT_LENGTH'])
    except (KeyError, ValueError):
        content_length = 0

    if cls is None:
        cls = MultiDict
    if max_content_length is not None and content_length > max_content_length:
        raise RequestEntityTooLarge()
    stream = _empty_stream
    files = ()
    if content_type == 'multipart/form-data':
        try:
            form, files = parse_multipart(environ['wsgi.input'], extra.get('boundary'), content_length, stream_factory, charset, errors, max_form_memory_size=max_form_memory_size)
        except ValueError as e:
            if not silent:
                raise 
            form = cls()
        else:
            form = cls(form)

    elif content_type == 'application/x-www-form-urlencoded' or content_type == 'application/x-url-encoded':
        if max_form_memory_size is not None and content_length > max_form_memory_size:
            raise RequestEntityTooLarge()
        form = url_decode(environ['wsgi.input'].read(content_length), charset, errors=errors, cls=cls)
    else:
        form = cls()
        stream = LimitedStream(environ['wsgi.input'], content_length)
    return (stream, form, cls(files))
开发者ID:Pluckyduck,项目名称:eve,代码行数:31,代码来源:formparser.py

示例8: _parse_urlencoded

 def _parse_urlencoded(self, stream, mimetype, content_length, options):
     if self.max_form_memory_size is not None and \
        content_length > self.max_form_memory_size:
         raise RequestEntityTooLarge()
     form = url_decode(stream.read(), self.charset,
                       errors=self.errors, cls=self.cls)
     return _empty_stream, form, self.cls()
开发者ID:sean-,项目名称:werkzeug,代码行数:7,代码来源:formparser.py

示例9: index

def index():
    if request.args.has_key("magnet"):
        magnet = url_unquote(request.args["magnet"]).encode(request.charset)
        magnet_xt = url_decode(magnet[magnet.index("?") + 1 :])["xt"]
        torrent = cache.get(magnet_xt)
        if not torrent:
            try:
                handle = lt.add_magnet_uri(
                    ses,
                    magnet,
                    {"save_path": "./invalid", "paused": False, "auto_managed": False, "duplicate_is_error": False},
                )
                while not handle.has_metadata():
                    time.sleep(0.01)
                handle.pause()
                info = handle.get_torrent_info()
                torrent = create_torrent(info)
                cache.set(magnet_xt, torrent)
                ses.remove_torrent(handle, lt.options_t.delete_files)
            except:
                torrent = cache.get(magnet_xt)
        response = Response(response=torrent[1], mimetype="application/x-bittorrent")
        response.headers.add("Content-Disposition", "attachment", filename=torrent[0])
        return response
    return render_template("index.html")
开发者ID:miguelvps,项目名称:magnets,代码行数:25,代码来源:app.py

示例10: args

 def args(self):
     return url_decode(
         self.environ.get("QUERY_STRING", ""),
         self.url_charset,
         errors=self.encoding_errors,
         cls=self.parameter_storage_class,
     )
开发者ID:Reve,项目名称:eve,代码行数:7,代码来源:wrappers.py

示例11: test_override_token_post

def test_override_token_post():
    responses.add(responses.POST, "https://slack.com/api/chat.postMessage")

    app = Flask(__name__)
    slack_bp = make_slack_blueprint(
        client_id="foo", client_secret="bar",
        backend=MemoryBackend({"access_token": "abcde"}),
    )
    app.register_blueprint(slack_bp, url_prefix="/login")

    with app.test_request_context("/"):
        app.preprocess_request()
        resp = slack.post("chat.postMessage", data={
            "token": "xyz",
            "channel": "#general",
            "text": "ping",
            "icon_emoji": ":robot_face:",
        })
    request_data = url_decode(resp.request.body)
    assert request_data["token"] == "xyz"
    assert request_data["channel"] == "#general"
    assert request_data["text"] == "ping"
    assert request_data["icon_emoji"] == ":robot_face:"
    # should not be present
    url = URLObject(resp.request.url)
    assert "token" not in url.query_dict
开发者ID:RickyCook,项目名称:flask-dance,代码行数:26,代码来源:test_slack.py

示例12: parse_redirect

 def parse_redirect(self, location, parse_fragment=False):
     from werkzeug.urls import url_parse, url_decode, url_unparse
     scheme, netloc, script_root, qs, anchor = url_parse(location)
     return (
         url_unparse((scheme, netloc, script_root, '', '')),
         url_decode(anchor if parse_fragment else qs)
     )
开发者ID:adsabs,项目名称:adsws,代码行数:7,代码来源:api_base.py

示例13: auth

def auth():
    try:
        back = request.args['back']
    except KeyError:
        redirect_uri = url_for('auth', _external=True)
        initial = True
    else:
        redirect_uri = url_for('auth', back=back, _external=True)
        initial = False
    params = {
        'client_id': current_app.config['CLIENT_ID'],
        'client_secret': current_app.config['CLIENT_SECRET'],
        'redirect_uri': redirect_uri,
        'code': request.args['code'],
        'state': get_oauth_state()
    }
    response = urllib2.urlopen(
        'https://github.com/login/oauth/access_token',
        url_encode(params)
    )
    auth_data = url_decode(response.read())
    response.close()
    token = auth_data['access_token']
    if initial:
        with open_token_file('w') as f:
            f.write(token)
        current_app.config['ACCESS_TOKEN'] = token
        return_url = url_for('home')
    else:
        return_url = base64.urlsafe_b64decode(str(back))
    session['login'] = token
    return redirect(return_url)
开发者ID:Mondego,项目名称:pyreco,代码行数:32,代码来源:allPythonContent.py

示例14: callback

def callback():
    """Callback from Twitter."""
    try:
        resource_owner_key = cookie.pop('twitter_oauth_token')
        resource_owner_secret = cookie.pop('twitter_oauth_token_secret')
    except KeyError:
        abort(401)
    config = current_app.config
    oauth = OAuth1(config['TWITTER_API_KEY'],
                   client_secret=config['TWITTER_API_SECRET'],
                   resource_owner_key=resource_owner_key,
                   resource_owner_secret=resource_owner_secret,
                   verifier=request.args['oauth_verifier'])
    r = requests.post(url=config['TWITTER_ACCESS_TOKEN_URL'], auth=oauth)
    response = url_decode(r.content)
    user = session.query(User) \
        .filter_by(twitter_user_id=response['user_id']).first()
    if not user:
        user = User(twitter_user_id=response['user_id'])
        session.add(user)
    user.twitter_oauth_token = response['oauth_token']
    user.twitter_oauth_token_secret = response['oauth_token_secret']
    user.screen_name = response['screen_name']
    session.commit()
    cookie['user_id'] = user.id
    return redirect(url_for('.home'))
开发者ID:limeburst,项目名称:favien,代码行数:26,代码来源:user.py

示例15: login_url

def login_url(login_view, next_url=None, next_field='next'):
    '''
    Creates a URL for redirecting to a login page. If only `login_view` is
    provided, this will just return the URL for it. If `next_url` is provided,
    however, this will append a ``next=URL`` parameter to the query string
    so that the login view can redirect back to that URL.

    :param login_view: The name of the login view. (Alternately, the actual
                       URL to the login view.)
    :type login_view: str
    :param next_url: The URL to give the login view for redirection.
    :type next_url: str
    :param next_field: What field to store the next URL in. (It defaults to
                       ``next``.)
    :type next_field: str
    '''
    if login_view.startswith(('https://', 'http://', '/')):
        base = login_view
    else:
        base = url_for(login_view)

    if next_url is None:
        return base

    parts = list(urlparse(base))
    md = url_decode(parts[4])
    md[next_field] = make_next_param(base, next_url)
    parts[4] = url_encode(md, sort=True)
    return urlunparse(parts)
开发者ID:Anioko,项目名称:flask-login,代码行数:29,代码来源:flask_login.py


注:本文中的werkzeug.urls.url_decode函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。