我需要为我的 Flask 应用程序实现一个 API,并且已经看到了针对 Flask-Restless
. 我遇到了这个库的基本用法,并希望使用它的人可以提供帮助。
创建 API 管理器和端点...
manager = APIManager(app, flask_sqlalchemy_db=db)
manager.create_api(Gallery, methods=['GET', 'POST', 'PUT', 'DELETE'])
...以及随之而来的模型
class Gallery(db.Model):
__tablename__ = 'galleries'
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(25))
def __init__(self, title):
self.title = title
现在,为了插入新条目,我使用了这个 jQuery ajax POST 请求。这工作正常。我已经在 sqlite db 查看器中对其进行了测试,并且可以看到条目。
$('#form').on('submit', function(e){
$.ajax({
type: 'post',
url: '/api/galleries',
contentType:"binary/octet-stream",
data: JSON.stringify({'title': $('#title').val()}),
success: function(){
alert('Success!');
}
});
e.preventDefault();
});
这就是问题所在。我进入http://localhost:5000/api/galleries
浏览器并收到以下消息:
sqlalchemy.orm.exc.NoResultFound
NoResultFound:没有找到一个()的行
api/galleries
奇怪的是,它会在应该返回数据库条目列表时尝试运行 one() 。我尝试api/galleries/1
得到完全相同的错误。我仔细检查了一下,主 ID 是 1。我错过了什么?