Django-Piston中的错误处理

2 投票
1 回答
1749 浏览
提问于 2025-04-16 12:10

在Django-Piston中,有没有好的方法来处理错误?比如说,当调用者漏掉了一个必须的GET参数,或者参数不合法时,返回一个400状态码。

1 个回答

4

Django-piston 会遵循 HTTP 状态码,并且默认处理一些常见的错误(比如认证错误等)。不过,你也可以通过 piston.utils 中的 rc 来抛出新的异常或状态。

举个例子:

from django.contrib.auth.models import User
from piston.handler import AnonymousBaseHandler
from piston.utils import rc

class AnonymousUserHandler(AnonymousBaseHandler):
    allowed_methods = ('GET', )
    fields = ('id', 'username',)

    def read(self, request):
        try:
            user = User.objects.get(username=request.GET.get('username', None))
            return user
        except Exception:
            resp = rc.NOT_FOUND
            resp.write(' User not found')
            return resp

你可以查看所有的工具和帮助信息,地址是 https://django-piston-sheepdog.readthedocs.io/en/latest/helpers.html

撰写回答