我正在为一个新项目寻找学习 Django 的借口。通常,我喜欢构建 RESTful 服务器端接口,其中 URL 映射到在某些平台独立上下文(例如 XML 或 JSON)中吐出数据的资源。这是
在不使用框架的情况下,这样做相当简单,但是其中一些框架(例如 Ruby on Rails)可以方便地允许您根据传递的 URL 类型和现有模型代码轻松地将 XML 吐回客户端。
我的问题是,像 Django 这样的东西支持这个吗?我用谷歌搜索并找到了一些可以在 Django 之上运行的“RESTful”第三方代码。不确定我是否太热衷于此。
如果不是 Django,还有其他已经考虑到这一点而构建的 Python 框架吗?这样我就不必像 PHP 等语言那样重新发明轮子了?
这可能很容易做到。
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)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)