【问题标题】:piston-django how many methods should a single handler contain活塞-django 单个处理程序应包含多少个方法
【发布时间】:2011-06-24 09:26:49
【问题描述】:

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

问候,

【问题讨论】:

    标签: python django django-piston


    【解决方案1】:

    文档看起来很清楚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),
    )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-19
      • 2017-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-29
      • 2021-05-31
      相关资源
      最近更新 更多