当前位置: 首页 > 知识库问答 >
问题:

从烧瓶返回Requests.Response对象

谷玉韵
2023-03-14

我正在尝试使用Flask和requests构建一个简单的代理。代码如下:

@app.route('/es/<string:index>/<string:type>/<string:id>',
           methods=['GET', 'POST', 'PUT']):
def es(index, type, id):
    elasticsearch = find_out_where_elasticsearch_lives()
    # also handle some authentication
    url = '%s%s%s%s' % (elasticsearch, index, type, id)

    esreq = requests.Request(method=request.method, url=url,
                             headers=request.headers, data=request.data)
    resp = requests.Session().send(esreq.prepare())
    return resp.text

这可以工作,只是它会丢失ElasticSearch的状态代码。我尝试直接返回resp(requests.models.response),但失败了

TypeError: 'Response' object is not callable

还有其他简单的方法从flask返回requests.models.response吗?

共有1个答案

公孙锋
2023-03-14

好的,找到了:

如果返回一个元组,则该元组中的项可以提供额外的信息。这样的元组必须是形式(响应、状态、头)。状态值将覆盖状态代码,头可以是附加头值的列表或字典。

(烧瓶文件)

所以

return (resp.text, resp.status_code, resp.headers.items())

似乎能奏效。

 类似资料:
  • 问题内容: 例如,此URL: 应该返回一个MIME类型的响应。我有两个静态图像, 如果type为1,则应返回,否则返回。在烧瓶中怎么做? 问题答案: 您使用类似 发送回或,具体取决于类型查询参数。有关更多信息,请参见函数和对象的文档。

  • 问题内容: 我们正在使用Flask作为我们的API之一,我只是想知道是否有人知道如何返回HTTP响应201? 对于诸如404之类的错误,我们可以致电: 但是对于201我得到 LookupError:201也不例外 我是否需要创建自己的例外,像这样的文档? 问题答案: 您可以在这里阅读。

  • 我发现很难找到有关这方面的资料。会是什么?我如何解决这个问题?有哪些可能的修复方法? UWSGI日志文件 时钟来源:unix检测到CPU核数:4当前工作目录:/home/pi检测到二进制路径:/usr/local/bin/uwsgi!!!没有内部路由支持,重建与pcre支持!!!*警告:您在没有主进程管理器的情况下运行uWSGI进程数限制为7336内存页大小为4096字节检测到最大文件描述符号:6

  • 我在嘲笑一个Post api(用C#编写),它在调用时返回一个布尔值true或false。请求的内容类型是application/json 我现在正试图使用Flask在Python中模拟那个endpoint,但我很难让它传递一个布尔值。

  • 我正试图将数据放入flask中的表中,但由于某种原因,它为每个字符创建了一个新行,而不是仅仅将完整的字符串放入行中。 代码: 表代码:

  • 问题内容: 我想控制上传图片的大小,如果它大于最大文件上传限制。我尝试了这个: 它印了。我究竟做错了什么?我应该从它的临时路径中找到该图像的大小吗?有没有类似PHP的Python? 问题答案: 这里需要注意几件事- content_length属性将是浏览器报告的文件上载的内容长度,但是不幸的是,正如docs和source中指出的那样,许多浏览器没有发送此长度。 至于您的TypeError,接下来