0

我一直在为要映射到 url 文件的每个方法构建一个处理程序类。我的方法是对还是错?因为我似乎没有找到将资源映射到方法的方法,它们都映射到整个类。

问候,

4

1 回答 1

0

文档似乎很清楚https://bitbucket.org/jespern/django-piston/wiki/Documentation#!resources

from piston.handler import BaseHandler
from myapp.models import Blogpost

class BlogpostHandler(BaseHandler):
   allowed_methods = ('GET',)
   model = Blogpost   

   def read(self, request, post_slug):
      ...

Piston 让您可以将资源映射到模型,这样做可以为您完成很多繁重的工作。

资源可以只是一个类,但通常您希望至少定义 4 种方法中的 1 种:

read在 GET 请求上调用,并且永远不应该修改数据(幂等)。

create在 POST 上调用,并创建新对象,并应返回它们(或rc.CREATED.)

update在 PUT 上调用,并且应该更新现有产品并返回它们(或rc.ALL_OK。)

delete在 DELETE 上调用,并且应该删除现有对象。不应该返回任何东西,只是rc.DELETED.

还有https://bitbucket.org/jespern/django-piston/wiki/Documentation#!mapping-urls

在 urls.py 中:

from django.conf.urls.defaults import *
from piston.resource import Resource
from mysite.myapp.api.handlers import BlogpostHandler

blogpost_handler = Resource(BlogpostHandler)

urlpatterns = patterns('',
   url(r'^blogpost/(?P<post_slug>[^/]+)/', blogpost_handler),
   url(r'^blogposts/', blogpost_handler),
)
于 2011-06-24T09:56:03.617 回答