@tarp20

Flask. TypeError: Object of type Product is not JSON serializable?

main.py :

from flask_cors import CORS
from flask import Flask, jsonify
from flask_sqlalchemy import SQLAlchemy

from sqlalchemy import UniqueConstraint

app = Flask(__name__)
app.config["SQLALCHEMY_DATABASE_URI"] = 'mysql://root:root@db/main'
CORS(app)

db = SQLAlchemy(app)


class Product(db.Model):

    id = db.Column(db.Integer, primary_key=True, autoincrement=False)
    title = db.Column(db.String(200))
    image = db.Column(db.String(200))


class ProductUser(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer)
    product_id = db.Column(db.Integer)

    UniqueConstraint('user_id', 'product_id', name='user_product_unique')


@app.route('/api/products')
def index():
    return jsonify(Product.query.all())

if __name__ == '__main__':
    app.run(debug=True,host='0.0.0.0')
  • Вопрос задан
  • 879 просмотров
Решения вопроса 1
kshnkvn
@kshnkvn
yay ✌️ t.me/kshnkvn
jsonify не умеет сериализовывать классы, для начала нужно информацию подготовить:
data = [{'id': p.id, 'uid': p.user_id, 'pid': p.product_id} for p in Product.query.all()]
return jsonify(data)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы