Flask:Peewee model_to_dict 助手不工作

Flask: Peewee model_to_dict helper not working

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

AttributeError: 'SelectQuery' object has no attribute '_meta'

我不知道为什么或该怎么办,有人知道如何解决吗?

我正在使用 python 2.7 和最新版本的 peewee

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

这是因为 doitch 是一个 SelectQuery 实例,它不是模型,你必须调用 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 方法将数据作为字典获取。这省略了创建整个模型的东西。

from flask import jsonify

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

编辑

正如@lord63 所指出的,你不能简单地return 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()
    })