当前位置:  开发笔记 > 编程语言 > 正文

Django轻松构建RESTful接口

如何解决《Django轻松构建RESTful接口》经验,为你挑选了1个好方法。

我正在寻找借口来学习Django的新项目.通常,我喜欢构建RESTful服务器端接口,其中URL映射到在某些独立于平台的上下文(例如XML或JSON)中吐出数据的资源.这在没有使用框架的情况下是相当简单的,但是其中一些如Ruby on Rails可以根据您现有的模型代码,方便地根据您传递的URL类型轻松地将XML反射回客户端.

我的问题是,像Django这样的东西是否支持这个?我用Google搜索并发现了一些可以放在Django之上的"RESTful"第三方代码.不确定我是否太热衷于此.

如果不是Django,任何其他Python框架已经构建了这个,所以我不必重新发明轮子,因为我已经有像PHP这样的语言?



1> a paid nerd..:

这可能很容易做到.

URL映射很容易构建,例如:

urlpatterns = patterns('books.views',
  (r'^books/$', 'index'),
  (r'^books/(\d+)/$', 'get'))

Django支持模型序列化,因此很容易将模型转换为XML:

from django.core import serializers
from models import Book

data = serializers.serialize("xml", Book.objects.all())

将两者与装饰器相结合,您可以构建快速,快速的处理程序:

from django.http import HttpResponse
from django.shortcuts import get_object_or_404

def xml_view(func):
  def wrapper(*args, **kwargs):
    result = func(*args, **kwargs)
    return HttpResponse(serializers.serialize("xml", result),
        mimetype="text/xml")
  return wrapper

@xml_view
def index(request):
  return Books.objects.all()

@xml_view
def get(request, id):
  return get_object_or_404(Book, pk=id)


创建一个`json_view`装饰器,类似于:`return HttpResponse(json.dumps(result),mimetype ="application/json")`
推荐阅读
Chloemw
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有