【发布时间】:2011-06-24 09:26:49
【问题描述】:
我一直在为要映射到 url 文件的每个方法构建一个处理程序类。我的方法是对还是错?因为我似乎没有找到将资源映射到方法的方法,它们都映射到整个类。
问候,
【问题讨论】:
标签: python django django-piston
我一直在为要映射到 url 文件的每个方法构建一个处理程序类。我的方法是对还是错?因为我似乎没有找到将资源映射到方法的方法,它们都映射到整个类。
问候,
【问题讨论】:
标签: python django django-piston
文档看起来很清楚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):
...
活塞可让您将资源映射到 模型,通过这样做,它会做一个 为您承担很多繁重的工作。
资源可以只是一个类,但是 通常你会想定义在 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),
)
【讨论】: