如何将URL中的参数字符串传递给GAE中的Python函数?

时间:2012-08-10 15:27:10

标签: python google-app-engine

我是 GAE Python 新手。我无法将我的HTML页面中的字符串参数传递给Python函数(它适用于整数参数)

我有以下网址:

http://localhost:8094/papers/xyz

main()我有:

app = webapp2.WSGIApplication([
('/', homepage.ViewHomePage),
('/about', aboutpage.ViewAboutPage),
    ('/papers/([\w]+)', PaperList)
],
            config=config,
            debug=True)

该功能定义为:

class PaperList(BaseHandler):

    def get(self, param1):

app.yaml我有:

- url: .*
  script: main.app

这不起作用。但是,如果我只是将参数从字符串更改为整数,那么它可以工作。 (我还没有对参数做任何事情,只是希望它接受字符串参数。)

有人可以告诉我必须更改哪些内容以允许它使用字符串参数,并指出文档说明如何通过main()传递参数的位置?

我正在使用 Python 2.7

2 个答案:

答案 0 :(得分:2)

\d仅匹配十进制数字。您的意思是使用\w吗?此外,没有方括号。

答案 1 :(得分:0)

您还可以选择传递urlencoded数据,例如yourapp.appspot.com/papers?keyword=helloworld

并在你的处理程序中获取它: keyword = self.request.GET.get('keyword') 要么 keyword = self.request.POST.get('keyword')取决于您的请求方法。

你也可以在AJAX帖子的主体中传递json数据,并使用json将其反序列化为python数据。为了验证这种数据,我建议性感。