如何使用Tastypie API将数据发布到数据库中

时间:2013-06-30 04:06:17

标签: api tastypie

我可以直接调用API URI执行创建/删除操作吗?像

这样的东西
http://www.somedomain.com/api/entry/?action=create&book_title=something&year=1986&author=someone

而不是在curl中传递标题?

我可以用CURL做到这一点:

curl --dump-header - -H "Content-Type: application/json" -X POST --data '{"name": "me", "passwd": "123456"}' http://www.somedomain.com/api/entry/

但是我希望通过在浏览器中请求url而不是使用curl来执行此操作。 在tastypie中这可能吗?

2 个答案:

答案 0 :(得分:1)

您可以覆盖dispatch

上的Resources方法
from tastypie import resources

class MyResource(resources.ModelResource):
    class Meta:
        # TODO stuff here

    def dispatch(self, request_type, request, **kwargs):
        action = request.GET.get("action")
        if action in ["POST", "PUT", "DELETE", "PATCH"] and request.method == "GET":
            request.method = action
            request.POST = request.GET
        return super(MyResource, self).dispatch(request_type, request, **kwargs)

然后,您可以使用GET

从网址中拨打api staright
http://www.somedomain.com/api/entry/?action=POST&book_title=something&year=1986&author=someone

答案 1 :(得分:0)

GET将参数放在URL中,POST请求应将其数据放在消息正文中

http://en.wikipedia.org/wiki/POST_%28HTTP%29