将参数传递给python中的webapp2.RequestHandler对象

时间:2013-01-03 17:35:39

标签: google-app-engine python-2.7 webapp2

在创建WSGIApplication实例时,有没有办法将参数传递给RequestHandler对象?

我的意思是

app = webapp2.WSGIApplication([
    ('/', MainHandler),
    ('/route1', Handler1),
    ('/route2', Handler2)
], debug=True)

是否可以将一些参数传递给MainHandlerHandler1Handler2

提前致谢

2 个答案:

答案 0 :(得分:8)

您在URL中传递“参数”。

class BlogArchiveHandler(webapp2.RequestHandler):
    def get(self, year=None, month=None):
        self.response.write('Hello, keyword arguments world!')

app = webapp2.WSGIApplication([
    webapp2.Route('/<year:\d{4}>/<month:\d{2}>', handler=BlogArchiveHandler, name='blog-archive'),
])`

从这里开始:features

上面链接的页面不再存在。可以找到等效文档here

答案 1 :(得分:8)

您还可以通过配置字典传递参数。

首先定义配置:

import webapp2

config = {'foo': 'bar'}

app = webapp2.WSGIApplication(routes=[
    (r'/', 'handlers.MyHandler'),
], config=config)

然后根据需要访问它。在RequestHandler中,例如:

import webapp2

class MyHandler(webapp2.RequestHandler):
    def get(self):
        foo = self.app.config.get('foo')
        self.response.write('foo value is %s' % foo)

从这里开始:webapp2 documentation