Python / Django中的REST API

0 投票
2 回答
1038 浏览
提问于 2025-04-18 12:27

我正在开发一个iPhone应用,它需要和后端的API进行通信。目前,这个API是用Django写的(不是我写的),我们正在考虑从头开始重写。我们唯一的真正要求是这个API必须完全符合REST标准,并且要有版本控制。身份验证和授权的方式现在不是优先考虑的(也就是说,不需要OAuth,基本的身份验证就可以了)。

我之前是用Ruby和Rails的,对Python一点都不懂。

所以我想问:

有没有什么Django的库可以帮助快速构建这样的API?

我在想一些工具,比如graperails-api,甚至是sinatra(也许可以作为Rails的中间件)。

我知道有flask,但它能和Django结合使用吗?

2 个回答

1

Django Piston https://bitbucket.org/jespern/django-piston/wiki/Documentation

优点 - 设置和开始使用都很简单。如果你用默认配置,它的表现也很好。

缺点 - 自定义数据处理的方法实现起来比较困难。

Django REST Framework http://www.django-rest-framework.org/

优点 - 学习起来比较简单,容易上手。

缺点 - 在这三者中,文档似乎是最少的。

TastyPie http://django-tastypie.readthedocs.org/en/latest/

优点 - 三个选项中名字最好。它似乎提供了最多的功能,适合自定义数据处理和连接非ORM的数据源。

流量控制、权限和身份验证也比较简单。

缺点 - 我第一次选择避开TastyPie是因为它看起来对我来说太复杂了。对于简单的使用场景,TastyPie可能有点过于复杂。

2

TastyPieDjango REST framework 是使用 Django 时最好的选择。

我个人觉得 TastyPie 特别适合快速上手,它为你选择了一套默认的规则,让你能迅速开始。而 Django REST framework 的分层设计特别好,方便你根据自己的需求来定制 API。

这两个框架都有详细的文档和很多社区支持。(我不太明白 @timus2001 说的文档不足是基于什么。)

你绝对不应该使用 Piston,因为它已经很久没有维护了。(最后一次发布是在 2011 年)

还可以看看 这个类似的 StackOverflow 问题,以及 Daniel Greenfeld 在 2012 年的 相关看法

撰写回答