Python 2.7 给定一个URL列表,如何使用TwistedPython从生成器异步返回该URL的内容

Python 2.7 给定一个URL列表,如何使用TwistedPython从生成器异步返回该URL的内容,python-2.7,asynchronous,twisted,Python 2.7,Asynchronous,Twisted,我想知道如何在python中使用twisted异步返回URL列表的内容。我知道我可以使用getPage()异步获取url内容,但是如何使用生成器的结果从生成器函数返回结果呢 同步代码如下所示 import requests def gen(urls): for url in urls: yield requests.get(url) 编辑1: 我的具体要求是通过python提供服务。也就是说,给定一个关键字,我的flask应用程序应该返回与该关键字相关的所有URL的内容

我想知道如何在python中使用twisted异步返回URL列表的内容。我知道我可以使用getPage()异步获取url内容,但是如何使用生成器的结果从生成器函数返回结果呢

同步代码如下所示

import requests
def gen(urls):
    for url in urls:
        yield requests.get(url)
编辑1:

我的具体要求是通过python提供服务。也就是说,给定一个关键字,我的flask应用程序应该返回与该关键字相关的所有URL的内容。我可以使用搜索引擎api从关键字中获取URL列表,我所要做的就是使用服务器发送的事件(事件源)作为流式服务返回内容

def handle_request():
    urls=search_engine.search(requests.args.get('query'))
    def content_gen():
        for url in urls:
            yield requests.get(url)
    return Response(content_gen(), mimetype="text/event-stream")
requests.get调用是同步的,我只想使用twisted的getPage()使代码异步

编辑2:

通过在所有URL上使用Twisted的getPage,我将得到一个延迟列表。Flask是一个同步框架,所以我不能直接使用延迟通过Flask返回数据。通过使用钩针库,我可以同步等待延迟,因为等待延迟是使用钩针中的@wait.for decorator阻塞的,结果会按顺序返回。但是我希望生成器函数生成url的数据,而不是按照url序列


老实说,我不太懂钩针或扭曲,所以如果我问一个小问题,请原谅

你在转换的哪一部分遇到了困难?我需要一个生成器函数,它可以在任何url的内容可用时生成url的内容@Jean-paulderoneflask仍然希望结果同步到达。您可以通过多种方式将异步Twisted代码与其他同步代码集成—一种方式是使用Itamar Turner Trauring的钩针库。如果您遇到的问题是异步/同步集成,那么值得一看。“不过,我仍然不确定您在解决方案的哪一部分遇到了麻烦。@Jean-PaulCalderone,您能签出编辑2吗?”。