【问题标题】:Django no text in responseDjango没有文本响应
【发布时间】:2013-03-22 22:01:28
【问题描述】:

在我的views.py的某个地方,我有

def loadFcs(request):
  r = requests.get('a url')
  res = json.loads(r.text)
  #Do other stuff
  return HttpResponse('some response')

现在,当我从我的 javascript 调用它时,会调用 loadFcs,而 可能 requests.get 会被异步调用。所以我最终看到'TypeError at /loadFcs expected string or buffer'并且跟踪指向带有

的行
res = json.loads(r.text)

我还修改了我的代码以检查问题所在,并且

def loadFcs(request):
  r = requests.get('a url')
  res = json.loads(r.text)
  if r == None:
    print 'r is none'
  if r.text == None:
    print 'text is  None'
  #Do other stuff
  return HttpResponse('some response')

并注意到“没有文字”。所以我认为我需要调整代码以便 request.get 是同步的。我认为方法执行会继续,甚至在 r.text 有一些价值之前就已经命中了 return 语句。 有什么建议吗?

【问题讨论】:

标签: django request synchronous


【解决方案1】:

好的,所以我用 python 命令行尝试了同样的事情,但它在我的服务器中使用相同的代码却不工作。 那么问题出在哪里?

显然,response.text 采用某种编码 (UTF8),我的服务器未设置为接收,因此它只是将其丢弃,因此为 null。

解决方案:使用 response.content(原始二进制)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-09
    • 2013-11-17
    • 2014-07-31
    • 2017-05-14
    • 2012-11-20
    • 2022-07-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多