我在阅读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
答案 0 :(得分:0)
loop
构造函数的 web.Application
参数是仅限关键字
(有关详细信息,请参阅PEP 3102)。
因此,您应该使用name=value
表示法。