如果您有这样的控制器方法:
@expose("json")
def artists(self, action="view",artist_id=None):
artists=session.query(model.Artist).all()
return dict(artists=artists)
如何在控制器类中调用该方法,并返回python dict - 而不是dict的json编码字符串(需要您将其从json解码回python dict)。是否真的有必要编写一个函数来从模型中获取数据,而另一个函数是否需要打包这些数据以供模板使用(KID,JSON)?为什么在同一个类中调用此方法时,例如:
artists = self.artists()
如果该方法作为HTML请求的一部分被调用,那么您将获得一个json字符串。 我错过了什么?
答案 0 :(得分:1)
我通常通过使用'worker'方法来查询数据库,转换结果等,以及单独的公开方法,以及所有必需的装饰器。 E.g:
# The _artists method can be used from any other method
def _artists(self, action, artist_id):
artists = session.query(model.Artist).all()
return dict(artists=artists)
@expose("json")
#@identity.require(identity.non_anonymous())
# error handlers, etc.
def artists(self, action="view", artist_id=None):
return self._artists(action=action, artist_id=artist_id)