Looking for examples of using aiopg with aiohttp and non-async startup.

Ray Cote rgacote at appropriatesolutions.com
Fri Feb 26 09:52:12 EST 2016


Answer (obvious after a refreshing sleep):
Just run a separate async pool connection prior to kicking off the aiohttp
web application.
The startup now looks like:

async def connect():
    return await aiopg.create_pool(…)

if __name__ == “__main__”:
    loop = asyncio.get_event_loop()
    pool = loop.run_until_complete(connect())
    app = web.Application()
    app["pool"] = pool
    app.router.add_route(‘POST', '/pv/v1/', handle_v1)
    web.run_app(app)


Then, in the handle_v1 code:
    pool = request.app["pool"]
    connection = await pool.acquire()
    cursor = await connection.cursor()
—r

On Thu, Feb 25, 2016 at 5:23 PM, Ray Cote <rgacote at appropriatesolutions.com>
wrote:

> Hello:
>
> I have an aiohttp project that starts in the usual way:
>
> app = web.Application()
> app.router.add_route(‘POST”, ‘/‘, handler)
> web.run_app(app)
>
> My question is, how do I work with an aiopg.pool with aiohttp?
> There only seems to be async interfaces into aiopg — but I don’t want to
> create the pool in my handler since that requires a connection on each
> transaction.
>
> I found one example that was
>   app[“db”] = await aiopg.create_pool(dsn)
> but that doesn’t seen correct since we’re not yet in a loop.
>
> Can someone please provide an example showing the proper way to integrate
> aiopg pool into an aiohttp web application?
>
> Regards
> —Ray
>
> --
> Raymond Cote, President
> voice: +1.603.924.6079 email: rgacote at AppropriateSolutions.com skype:
> ray.cote
>
>
>


-- 
Raymond Cote, President
voice: +1.603.924.6079 email: rgacote at AppropriateSolutions.com skype:
ray.cote


More information about the Python-list mailing list