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

Jor*_*alo 7 google-app-engine python-2.7 webapp2

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

我的意思是

app = webapp2.WSGIApplication([
    ('/', MainHandler),
    ('/route1', Handler1),
    ('/route2', Handler2)
], debug=True)
Run Code Online (Sandbox Code Playgroud)

是否可以传递一些参数MainHandler,Handler1Handler2

提前致谢

Pau*_*ood 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'),
])`
Run Code Online (Sandbox Code Playgroud)

从这里:功能

上面链接的页面不再存在.可在此处找到等效文档.


Iva*_*aer 8

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

首先定义配置:

import webapp2

config = {'foo': 'bar'}

app = webapp2.WSGIApplication(routes=[
    (r'/', 'handlers.MyHandler'),
], config=config)
Run Code Online (Sandbox Code Playgroud)

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

import webapp2

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

从这里:webapp2文档