У меня есть следующая Колба-SQLAlchemy модель в декларативной базеЧто делает модель SQLAlchemy не сериализуемой?
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True)
pw = db.Column(db.String(20), unique=False)
last_login = db.Column(db.DATETIME)
posts = db.relationship('Post', backref='User')
def __init__(self, i, u, p):
self.id = i
self.username = u
self.pw = p
def __repr__(self) -> str:
return '<User %s, id = %d>' % (self.username, self.id)
class Post(db.Model):
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(100))
rest_text = db.Column(db.Text)
date = db.Column(db.DateTime)
author_id = db.Column(db.Integer, db.ForeignKey('user.id'))
def __init__(self, title: str, rest: str, author: User):
self.author = author
self.title = title
self.rest_text = rest
self.date = datetime.now()
self.id = randint(0, MAX_POSTS_NUM)
while self.id in db.session.query(Post.id).all():
self.id = randint(0, MAX_POSTS_NUM)
где db
является экземпляром SQLAlchemy(app)
объекта импортирован из __init__
файла моего Колба applicaiton. У меня есть уже существующая база данных sqlite3 с одним пользователем, с именем «тестом», и когда я делаю запрос в термосе с помощью
u = User.query.filter_by(username='test').first()
u.username
Я получаю следующую ошибку
TypeError: <User test, id = 1> is not JSON serializable
на вопрос си почему это не JSON serializable
. Что делает класс/модель JSON serializable
?
, используя комментарий, потому что им не удалось отладить его в данный момент, но в целом это исключение означает, что для модуля json было предложено сериализовать объект, отличный от строки, int или других базовых типов json datatypes. Кодировщику json нужно передать функцию обработчика, чтобы он знал, как представлять объект как один из них. Вот хороший пример того, как писать обработчик, но я не уверен, где json получает вызов, что ваше приложение разбивается http://stackoverflow.com/a/15823348/5425358 – tlastowka