如何将URL中的参数字符串传递给GAE中的Python函数?
我是一名GAE和Python新手。我无法将字符串参数从HTML页面传递给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) ],
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
本身匹配多个字符。