我是Python新手并探索Flask框架。
我正在使用Flask Restful来开发一个简单的基于Rest的API。现在我发现的最大挑战是将SQL Alchemy Model类用于JSON。今天我遇到了看似提供这个的Flask-Restless。那么我应该选择什么呢。我设法转换Flask Restful以通过在我的模型类中使用to_dict函数来提供JSON输出
class JSONSERIALIZER(object):
def to_dict(self):
return {c.name: getattr(self, c.name) for c in self.__table__.columns}
亲切的问候
答案 0 :(得分:5)
Restful是db不可知的,因此你可以将它与时髦的NoSql数据库一起使用,而Restless只能用于Sql数据库(因为它依赖于sqlalchemy)。但是如果你最终使用的是Sql数据库并且可以使用sqlalchemy,那么Restless将为您提供更多开箱即用的功能。
fwiw,我个人最喜欢的是Restless + Postgres。
编辑:为了表明你需要做些什么来建立一个不安分的休息api,我刚做了https://github.com/findjashua/flask-restless-example/blob/master/server.py
答案 1 :(得分:1)
Flask-restless 绝对拥有更多开箱即用的功能,并在Web服务抽象级别实现SQLAlchemy的Query API,允许通过GET请求进行复杂查询。例如:
相当于:
session.query(Book).filter(Book.author_id==1, Book.is_available == True).all()
此外, Flask-restless 有一个Beta版本,旨在遵守可能被证明非常强大的JSONAPI v1.0。
我写了a quick tutorial关于如何使用SQLAlchemy和Flask-Restless来引导Flask API的问题。它也比上面的例子更深入,解释了Flask-restless如何优雅地处理相关对象。你可以在这里找到它:
http://thelaziestprogrammer.com/sharrington/web-development/sqlalchemy-defined-rest-api