我一直在为要映射到 url 文件的每个方法构建一个处理程序类。我的方法是对还是错?因为我似乎没有找到将资源映射到方法的方法,它们都映射到整个类。
问候,
我一直在为要映射到 url 文件的每个方法构建一个处理程序类。我的方法是对还是错?因为我似乎没有找到将资源映射到方法的方法,它们都映射到整个类。
问候,
文档似乎很清楚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),
)