Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将URL中的参数字符串传递给GAE中的Python函数?_Python_Google App Engine - Fatal编程技术网

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

如何将URL中的参数字符串传递给GAE中的Python函数?,python,google-app-engine,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) ],

我是一名GAEPython新手。我无法将字符串参数从HTML页面传递给Python函数(但它适用于整数参数)

我有以下网址:

http://localhost:8094/papers/xyz
main()
中,我有:

app = webapp2.WSGIApplication([
('/', homepage.ViewHomePage),
('/about', aboutpage.ViewAboutPage),
    ('/papers/([\w]+)', PaperList)
],
            config=config,
            debug=True)
- url: .*
  script: main.app
该功能定义为:

class PaperList(BaseHandler):

    def get(self, param1):
app.yaml
中,我有:

app = webapp2.WSGIApplication([
('/', homepage.ViewHomePage),
('/about', aboutpage.ViewAboutPage),
    ('/papers/([\w]+)', PaperList)
],
            config=config,
            debug=True)
- url: .*
  script: main.app
这是行不通的。但是,如果我只是将参数从字符串更改为整数,那么它就可以工作。(我还没有对参数做任何操作,只是希望它接受字符串参数。)

有没有人能告诉我,为了让它能够使用字符串参数,我必须做些什么更改,并指出文档中说明如何通过
main()
传递参数的地方


我正在使用的Python 2.7只匹配十进制数字。您的意思是使用
\w
?另外,没有方括号。

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

并通过以下方式将其放入处理程序: 关键字=self.request.GET.GET('keyword') 或 关键字=self.request.POST.get('keyword'),具体取决于您的请求方法


您还可以在AJAX帖子的正文中传递json数据,并使用json将其反序列化为python数据。要验证此类数据,我建议使用volupturous。

您已经在main.py或app.yaml中映射了该URL。请出示代码。感谢您的快速回复。我更正了原来的问题以显示main()和app.yaml。谢谢,谢谢。是谁做的。我不明白为什么没有方括号。我在主目录中有大约40行()。我在最初的问题中增加了几行文字,使之更容易理解。你还认为我应该去掉方括号吗?它按原样工作。方括号用于匹配同一位置的多个字符,例如,
[abc]
将匹配
a
b
c
;类说明符,如
\d
\w
本身匹配多个字符。