【问题标题】:Django Piston Content Type Always NullDjango 活塞内容类型始终为空
【发布时间】:2010-08-09 19:06:23
【问题描述】:

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

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

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 错误。

提前致谢。

【问题讨论】:

    标签: python django django-piston


    【解决方案1】:

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

    【讨论】:

    • 好的,你的建议引导我走上正轨。要获取我发布的数据,我需要这样做:myVlaue = request.POST['value']。 TY
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-02-04
    • 2016-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多