在创建WSGIApplication实例时,有没有办法将参数传递给RequestHandler对象?
我的意思是
app = webapp2.WSGIApplication([
('/', MainHandler),
('/route1', Handler1),
('/route2', Handler2)
], debug=True)
是否可以将一些参数传递给MainHandler
,Handler1
或Handler2
?
提前致谢
答案 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