【问题标题】:Flask peewee AttributeError: 'ModelSelect' object has no attribute '_meta'Flask peewee AttributeError:“ModelSelect”对象没有属性“_meta”
【发布时间】:2020-09-18 23:54:57
【问题描述】:

我在 pipenv 烧瓶环境中有一个非常简单的设置、一个模型和 api 文件。我目前正在使用 peewee 并且一直面临从数据表中获取所有结果的问题。我以前在 python 中做过这个并且工作正常但是不确定在 Flask 中我做错了什么。这是我的模型

from peewee import * 
import peewee as pw


db = pw.MySQLDatabase('xxxxx', host="localhost", port=3306, user='xxx', 
password="xxxxx")


class HomeCarousel(Model):
   icon = pw.CharField(100)
   header = pw.CharField(50)
   text = pw.CharField(100)
   class Meta:
      database = db

这是我的 api 文件

from flask import Flask, g
from flask import jsonify, make_response
from playhouse.shortcuts import model_to_dict
from peewee import *
import peewee as pw
from models import *
from flask_cors import CORS

app = Flask(__name__)
cors = CORS(app, resources={r"/*": {"origins": "*"}})

@app.route('/')
def index():
   items = HomeCarousel.select()
   items = model_to_dict(items)
   return items

if __name__ == '__main__':
    app.run()

现在的问题是,当我执行 items = HomeCarousel.select() 时出现错误“AttributeError: 'ModelSelect' object has no attribute '_meta'”

如果我只选择一条记录,一切正常。 items = HomeCarousel.get()

有谁知道我在这里做错了什么?

谢谢

【问题讨论】:

    标签: python flask peewee flask-peewee


    【解决方案1】:

    model_to_dict 需要一个对象实例。您将其传递给ModelSelect。您需要遍历 ModelSelect 中返回的对象:

    @app.route('/')
    def index():
       items = HomeCarousel.select()
       items = [model_to_dict(item) for item in items]
       return items
    

    【讨论】:

      猜你喜欢
      • 2013-03-13
      • 2017-07-13
      • 1970-01-01
      • 1970-01-01
      • 2023-01-20
      • 2021-09-09
      • 2016-04-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多