如何在python webapp2中将__init__放入处理程序中(用于获取和发布)

时间:2013-03-13 23:01:45

标签: python webapp2

如何创建初始化代码? 当我把__init__构造函数总是告诉我参数是错误的。 另外,请使用__new__和使用super()的示例进行示例,我们为什么要使用它们。

import webapp2

class MainHandler( webapp2.RequestHandler ):
    def __init__( self ):
        #initialization code/vars
        x = 1

    def get( self ):
        #code for get here
        self.response.write( x+1 )

    def post( self ):
        #code for post here
        self.response.write( x+2 )

app = webapp2.WSGIApplication([('/',MainHandler)],debug = True)

3 个答案:

答案 0 :(得分:13)

终于搞定了...... 问题是覆盖“webapp2.RequestHandler”需要特殊的特殊处理

来自webapp2手册:

如果要覆盖webapp2.RequestHandler。 init ()方法,则必须调用 方法开头的webapp2.RequestHandler.initialize()。它会设置当前请求, 响应和appobjectsasattributesofthehandler。 例如:

class MyHandler(webapp2.RequestHandler):
    def __init__(self, request, response):
    # Set self.request, self.response and self.app.
    self.initialize(request, response)
    # ... add your custom initializations here ...
    # ...

......就是这样...... 现在按预期工作 ; - )

答案 1 :(得分:3)

如果您未在__init__方法中传递任何参数或包含任何自己的代码,则通常无需创建任何参数。您只需使用webapp2.RequestHandler的{​​{1}}方法。

如果你需要制作一个,你仍然需要拨打__init__

webapp2.RequestHandler.__init__

答案 2 :(得分:0)

您需要在班级的所有功能中都有一个self变量。您需要包含此变量才能使函数在您的类中工作。

可以找到here中每个函数中self变量需求的一个很好的解释。