我正在使用Peewee和bottle.py作为一个非常小的WebApp。偶尔我得到一个MySQLDatabase has gone away Error
,我的脚本似乎无法恢复。
根据this answer,我应该尝试捕捉错误并恢复自己。 我的一个例子:
def create_db_con():
return peewee.MySQLDatabase("db_name", host="host", user="user", passwd="pass")
class ModelObj(peewee.Model):
#some member ommited
class Meta:
database=create_db_con()
@route("/")
def index_htm():
try:
mo = ModelObj.filter(foo="bar")
catch OperationalError, oe:
ModelObj.Meta.database = create_db_con()
在出现OperationalError时,给出了AttributeError:
AttributeError: type object 'OrderProdukt' has no attribute 'Meta'
我应该如何从这种情况中恢复??
修改
正如univerio指出的那样,我可以通过ModelObj._meta.database
访问它,但它似乎不能只是创建它。
这是嵌套类的默认python行为吗?