Flask peewee AttributeError: 'ModelSelect' object has no attribute '_meta'
Flask peewee AttributeError: 'ModelSelect' object has no attribute '_meta'
我在 pipenv flask 环境中有一个非常简单的设置、一个模型和 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'"
如果我select只有一条记录,一切正常。 items = HomeCarousel.get()
有谁知道我在这里做错了什么?
谢谢
model_to_dict 需要一个对象实例。您正在传递 ModelSelect。您需要遍历 ModelSelect 中返回的对象:
@app.route('/')
def index():
items = HomeCarousel.select()
items = [model_to_dict(item) for item in items]
return items
我在 pipenv flask 环境中有一个非常简单的设置、一个模型和 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'"
如果我select只有一条记录,一切正常。 items = HomeCarousel.get()
有谁知道我在这里做错了什么?
谢谢
model_to_dict 需要一个对象实例。您正在传递 ModelSelect。您需要遍历 ModelSelect 中返回的对象:
@app.route('/')
def index():
items = HomeCarousel.select()
items = [model_to_dict(item) for item in items]
return items