修改http_charfinder.py使能在python311环境中运行

需要修改两个函数,第一个是init函数,修改如下:
async def init(loop, address, port):  # <1>
    # app = web.Application(loop=loop)  # <2>
    # app.router.add_route('GET', '/', home)  # <3>
    app = web.Application()  # <2>
    app.add_routes([web.get('/', home)])
    # handler = app.make_handler()  # <4>
    # server = yield from loop.create_server(handler,
    #                                        address, port)  # <5>
    runner = web.AppRunner(app)
    await runner.setup()
    server = await loop.create_server(runner.server,
                                      address, port)  # <5>
    return server.sockets[0].getsockname()  # <6>
不修改程序会报deprecation警报


第二个函数是home函数,修改如下:
def home(request):  # <1>
    # query = request.GET.get('query', '').strip()  # <2>
    query = request.query.get('query', '').strip()  # <2>
...

不修改程序会报如下错误:
Error handling request
Traceback (most recent call last):
...
File "D:\fluentPy\chapter17_18\http_charfinder.py", line 29, in home
    query = request.GET.get('query', '').strip()  # <2>
            ^^^^^^^^^^^
AttributeError: 'Request' object has no attribute 'GET'
因为request.GET已经被弃用了

如果程序运行正常,浏览器界面如下:

修改http_charfinder.py使能在python311环境中运行_第1张图片

你可能感兴趣的:(python编程学习,python,aiohttp,asyncio)