В моем контроллере API есть следующий код:
from flask import jsonify, current_app as app
from flask_restplus import Resource, Api, fields
from sqlalchemy import exc
from ..models.db_models import Book
api = Api(version='1.0', ...)
books = api.namespace('books', description='Database books')
@books.route('/<int:id>')
class Book(Resource):
model = books.model('Book', {
'id': fields.Integer,
'sort': fields.String,
'pubdate': fields.DateTime,
'isbn': fields.String
})
@books.marshal_with(model)
def get(self, id):
return Book.query.filter_by(id = id).first()
Вот модель книги db:
class Book(db.Model):
__tablename__ = 'books'
id = db.Column(db.Integer, primary_key=True)
sort = db.Column(db.String(200))
pubdate = db.Column(db.DateTime)
isbn = db.Column(db.String(13))
def __init__(self, id, name, sort):
self.id = id
self.name = name
self.sort = sort
def __repr__(self):
return '%s(%s)' % (self.__class__.__name__, {
key: value
for key, value in self.__dict__.items()
})
def serialize(self, links=False):
serialize = {
'id' : self.id,
'sort' : self.sort,
'pubdate' : self.pubdate,
'isbn' : self.isbn
}
if links:
serialize['links'] = [{
'rel' : 'book',
'href' : '{}/books/{}/authors'.format(app.config('URL'), self.id)
}]
return serialize
По какой-то причине, когда я пытаюсь вернуть результат из sqlalchemy, вместо него возвращается Internal Server Error
. Я почти уверен, что в моей модели sqlalchemy нет ничего плохого (ошибка подключения или что-то другое), я смог вернуть объект без Flask-RestPlus. Кто-нибудь может указать мне правильное направление?