@app.on_requestasync def run_before_handler(request): request.ctx.user = await fetch_user_by_token(request.token)@app.route('/hi')async def hi_my_name_is(request): return text("Hi, my name is {}".format(request.ctx.user.name))
@app.on_requestasync def increment_foo(request): if not hasattr(request.conn_info.ctx, "foo"): request.conn_info.ctx.foo = 0 request.conn_info.ctx.foo += 1@app.get("/")async def count_foo(request): return text(f"request.conn_info.ctx.foo={request.conn_info.ctx.foo}")
@app.route('/tag/<tag>')async def tag_handler(request, tag): return text("Tag - {}".format(tag))
$ curl http://localhost:8000?key1=val1&key2=val2&key1=val3
>>> print(request.args){'key1': ['val1', 'val3'], 'key2': ['val2']}>>> print(request.args.get("key1"))val1>>> print(request.args.getlist("key1"))['val1', 'val3']>>> print(request.query_args)[('key1', 'val1'), ('key2', 'val2'), ('key1', 'val3')]>>> print(request.query_string)key1=val1&key2=val2&key1=val3