假设我有一个特定的模型
class Page(db.Model):
""" Model for storing wiki pages """
page_name = db.StringProperty(required=True, default="/")
content = db.StringProperty(required=True, default="")
created = db.DateTimeProperty(auto_now = True)
我想要做的是查询数据存储。如果没有基于此模型的实体,我想创建一个默认实体。或者用一个默认实体创建模型会很棒。
我知道Python中的 init 方法,用于将初始值设置为属性,但是当我将其用于GAE&请求处理程序的Get方法中的webapp2我收到错误。
错误的代码是:
class WikiPage(Handler):
def __init__(self):
pass
我看到的错误是:
handler = self.handler(request, response)
TypeError: __init__() takes exactly 1 argument (3 given)
请告知
答案 0 :(得分:1)
目前还不清楚你要做什么,但如果你只想摆脱错误,你需要定义__init__
方法,如下所示:
class WikiPage(Handler):
def __init__(self, *args, **kwargs):
pass
更新回答您的问题“为什么”:
因为您要覆盖继承自__init__
的{{1}}类的Handler
方法,并且如果您在此处查看其原始定义:https://code.google.com/p/webapp-improved/source/browse/webapp2.py#506您将会看看它是如何定义的,它是如何在整个框架中使用的,这意味着如果你因任何原因决定覆盖它,你需要遵循相同的格式。