Flask:Peewee model_to_dict帮手无法正常工作

时间:2016-01-01 22:37:37

标签: python flask peewee

我正在为一个大学项目开发​​一个小应用程序,我需要json对查询结果进行编码以将其传递给js库,我已经在其他地方读过我可以使用model_to_dict来完成该任务,但我收到此错误

  

AttributeError:' SelectQuery'对象没有属性' _meta'

我不知道为什么或做什么,有谁知道如何解决这个问题?

我使用python 2.7和peewee的最后一个版本

@app.route('/ormt')
def orm():
    doitch = Player.select().join(Nationality).where(Nationality.nation % 'Germany')
    return model_to_dict(doitch)

1 个答案:

答案 0 :(得分:3)

这是因为doitchSelectQuery个实例,它不是模型,您必须致电get()

from flask import jsonify

@app.route('/ormt')
def orm():
    doitch = Player.select().join(Nationality).where(Nationality.nation % 'Germany')
    return jsonify(model_to_dict(doitch.get()))

此外,您可以使用dicts方法将数据作为dict获取。这省略了创建整个模型的东西。

from flask import jsonify

@app.route('/ormt')
def orm():
    doitch = Player.select().join(Nationality).where(Nationality.nation % 'Germany')
    return jsonify(doitch.dicts().get())

修改

正如@ lord63指出的那样,你不能简单地返回dict,它必须是Flask响应,所以将它转换为jsonify。

编辑2

@app.route('/ormt')
def orm():
    doitch = Player.select().join(Nationality).where(Nationality.nation % 'Germany')
    # another query
    sth = Something.select()
    return jsonify({
        'doitch': doitch.dicts().get(),
        'something': sth_query.dicts().get()
    })