加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

Python Flask如何使用Response从mongo查询中生成一个生成器

发布时间:2020-12-20 13:51:19 所属栏目:Python 来源:网络整理
导读:假设我的函数“search()”获取 mongodb中的一些内容并返回生成器. 我的烧瓶视图功能如下所示 @app.route("search/")def search_page(): generator = search() return Response(generator) 但如果我这样做,我会收到此错误: Error on request:Traceback (most
假设我的函数“search()”获取 mongodb中的一些内容并返回生成器.

我的烧瓶视图功能如下所示

@app.route("search/")
def search_page():
   generator = search()
   return Response(generator)

但如果我这样做,我会收到此错误:

Error on request:
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/werkzeug/serving.py",line 180,in run_wsgi
    execute(self.server.app)
  File "/usr/local/lib/python2.7/dist-packages/werkzeug/serving.py",line 171,in execute
    write(data)
  File "/usr/local/lib/python2.7/dist-packages/werkzeug/serving.py",line 151,in write
    assert type(data) is bytes,'applications must write bytes'
AssertionError: applications must write bytes

生成器本身会产生几个json值.我总是可以使用生成器来构造一个列表并返回列表,但我想避免这样做.

解决方法

您的代码中存在两个问题.

>您应该确保每次生成器都会生成字符串类型值.
>需要使用stream_with_context方法,可以从flask中导入

这是一个例子:

enter image description here

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读