首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在google-app-engine脚本中返回值始终为None

在google-app-engine脚本中返回值始终为None
EN

Stack Overflow用户
提问于 2018-06-09 23:43:49
回答 1查看 56关注 0票数 0

我使用以下代码来解析google-app-engine脚本中的url:

代码语言:javascript
复制
from urlparse import urlparse, parse_qs

def parse_url(url):
            parsed_url = urlparse(url)
            params = parse_qs(parsed_url.query)
            return params

class Handler(webapp2.RequestHandler):
     def get(self):      
        url = self.request.path_info
        params = parse_url(url)
        self.response.write(params) 

调用函数后,Params始终为None。然而,当在处理程序中使用完全相同的解析代码时(而不是作为函数)-解析效果很好,并且我在params中得到了一个非空的字典。

你知道为什么会这样吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-10 01:49:13

URL值并不是您需要传递给urlparse()以正确提取参数的完整self.request.path_info,它去掉了查询参数,这就是您没有得到参数的原因。它在处理程序中也不起作用,您可能在尝试之后做了一些额外的更改。

要使用parse_url()获取参数,请传递完整的url:

代码语言:javascript
复制
    url = self.request.url
    params = parse_url(url)

但是您应该注意到,所有这些都是不必要的,除了返回一个MultiDict之外,webapp2已经包含了一个参数解析器。来自Request data

参数

一个结合了GET和POST变量的类似字典的对象。

您所要做的就是将其转换为与parse_url()生成的字典完全相同的真实字典:

代码语言:javascript
复制
    self.response.write(dict(self.request.params))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50775935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档