Django Piston内容类型始终为空

时间:2010-08-09 19:06:23

标签: python django django-piston

一周前我有django-piston工作,但最近我无法拨打任何网络服务。下面是一个简单的例子。我有一个'test'服务,如果有内容类型则返回'yes',如果内容类型为null则返回'no'。我这样做是因为我在POST时遇到HTTP 500错误并尝试通过'data = request.data'解析我的参数。我假设我不能做request.data,因为内容类型为null?

所以,这是我简单的网络服务:

class testHandler(BaseHandler):
     def create(self, request):
         if request.content_type:
              return 'yes'
         else:
              data = request.data
              return 'no'

这是urls.py文件:

class CsrfExemptResource( Resource ):
     def __init__( self, handler, authentication = None ):
         super( CsrfExemptResource, self ).__init__( handler, authentication )
         self.csrf_exempt = getattr( self.handler, 'csrf_exempt', True )

controller_handler = CsrfExemptResource(controllerHandler)
test_handler = CsrfExemptResource(testHandler)

urlpatterns = patterns('',
     url(r'^controller/', controller_handler),
     url(r'^test/', test_handler),
)

最后我从python终端运行代码来调用服务:

params = urllib.urlencode({'value':'someValue'}) 
req = urllib2.Request("http://127.0.0.1/cindy/api/test/", params) 
result = urllib2.urlopen(req).read() 

所以'结果'总是返回no,如果我在服务中放入'request.data'行,我会收到HTTP 500错误。

提前致谢。

1 个答案:

答案 0 :(得分:0)

我认为HttpRequest对象中没有data属性。您可能正在寻找raw_post_data