app = web.Application(loop = loop)在aiohttp文档中

时间:2015-07-23 08:30:15

标签: python python-3.x aiohttp

我在阅读aiohttp文档时遇到loop=loop的问题。它是一个特殊且不可或缺的代码吗?或者只是app = web.Application(loop)也可以进行冗余重新分配。

服务器示例:

import asyncio
from aiohttp import web

@asyncio.coroutine
def handle(request):
    name = request.match_info.get('name', "Anonymous")
    text = "Hello, " + name
    return web.Response(body=text.encode('utf-8'))


@asyncio.coroutine
def init(loop):
    app = web.Application(loop=loop)  #Why use loop=loop?
    app.router.add_route('GET', '/{name}', handle)

    srv = yield from loop.create_server(app.make_handler(),
                                        '127.0.0.1', 8080)
    print("Server started at http://127.0.0.1:8080")
    return srv

loop = asyncio.get_event_loop()
loop.run_until_complete(init(loop))
try:
    loop.run_forever()
except KeyboardInterrupt:
    pass

1 个答案:

答案 0 :(得分:0)

来自loop构造函数的

web.Application参数是仅限关键字 (有关详细信息,请参阅PEP 3102)。 因此,您应该使用name=value表示法。