代码之家  ›  专栏  ›  技术社区  ›  Laizer

在Django中实现RESTWeb服务的框架

  •  22
  • Laizer  · 技术社区  · 15 年前

    我希望为Django应用程序实现一个RESTful接口。它主要是一个数据服务应用程序——接口将是(此时)只读的。

    问题是,哪个django工具集/框架最适合此任务。

    我看到了姜戈休息和姜戈活塞。我也有自己的选择。

    这个问题是在这里问的,但两年前还是不错的。我想知道现在的游戏状态。

    this question 大约在2008年,绝大多数人的投票结果是根本不使用任何框架——只创建用json等回复的django视图。(该问题也得到了解决,CRICA 2008, here )

    在目前的情况下,什么是最有意义的?

    5 回复  |  直到 12 年前
        1
  •  18
  •   Daniel Naab    12 年前

    注:由于这篇文章是写的, django-piston 不再是 积极维护。正如其他人提到的,调查 tastypie django-rest-framework .

    事实上,你可以自己动手,但涉及到很多样板文件。

    django-piston 是一个非常容易使用和可扩展的微型框架。除了模拟所有必要的视图和URL模式之外,它还支持将模型直接映射到一个REST接口,如果您有一个简单的用例,那就太好了。我建议调查一下。

        2
  •  9
  •   ncoghlan    13 年前

    由于这个问题在我在谷歌上的搜索中仍然得到很高的评价,我将把这个选项添加到组合中: http://django-rest-framework.org/

    我最初的印象是,它很好地体现了这里描述的RESTfulAPI设计原则: http://readthedocs.org/docs/restful-api-design/en/latest/

        3
  •  4
  •   Community CDub    8 年前

    Using django-rest-interface

    仍然是真实的。

    自己动手是很琐碎的。每个REST URI映射到一个视图函数。每个rest方法(get、post、put、delete)都是视图函数中的一个简单条件。

    完成。

        4
  •  4
  •   Johannes Gorset    13 年前

    一种方法是自己滚动,或者使用非常好的Django活塞。但我对活塞的问题是,它是一种附加到现有Django项目以添加API的产品。它并不是用来构建支持HTML格式的面向资源的API的。

    我看到活塞的用例的方式是,您有一个完整的网站,可以提供HTML内容,但是您可以在url/api/*上附加一个API。然后你把活塞加进去。有了这个用例,活塞就很好了,不需要为现有的代码重写,你就可以得到你需要的任何东西。可能活塞在不将API与面向用户的部分站点分离的情况下工作得很好,但我没有尝试过。

    试着用一些例子来解释这一点比较容易:

    比特桶

    github

    BitBucket使用Django和Django活塞为API制作,而GitHub使用Ruby on Rails制作,Wich内置了对不同格式资源的支持。我不是说你应该换成罗尔,因为我们都爱姜戈,我也不是说你不能和姜戈一起这么做,但是你自己在每一个角度都这么做会很乏味。

    所以我和一个同事决定我们想要在德姜戈的罗尔魔法,但我们不想它是魔法,而是让我们的生活更容易,而不抽象一切。所以 jgorset 写的 Respite 这是一个小的django框架,可以像ror一样制作“RESTful”API,但是在django中。它仍然处于早期开发阶段,但我们在工作项目中每天都使用它,并且它是高度可定制的,很像Django本身。它试图简化面向资源的网页的制作,并在不妨碍您的情况下构造代码。

    因此,我的建议自然是看一看,然后试着休息一下: https://github.com/jgorset/django-respite/

        5
  •  2
  •   Alex Ciminian Tim Down    13 年前

    tastypie 也是一个选择,我刚试过,到现在为止似乎无痛。我在玩一个虚拟的应用程序,它将API公开给一个backbone.js客户机,我没有用这个库碰壁。 This article 让我试试看。