Skip to content

Commit ee8b761

Browse files
achernetskyasvetlov
authored andcommitted
Adding demo with using redis storage (#219)
1 parent dc89982 commit ee8b761

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

demo/redis_storage.py

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
import asyncio
2+
import aioredis
3+
import time
4+
5+
from aiohttp import web
6+
from aiohttp_session import setup, get_session
7+
from aiohttp_session.redis_storage import RedisStorage
8+
9+
10+
async def handler(request):
11+
session = await get_session(request)
12+
last_visit = session['last_visit'] if 'last_visit' in session else None
13+
session['last_visit'] = time.time()
14+
text = 'Last visited: {}'.format(last_visit)
15+
return web.Response(text=text)
16+
17+
18+
async def make_redis_pool():
19+
redis_address = ('127.0.0.1', '6379')
20+
return await aioredis.create_pool(
21+
redis_address,
22+
create_connection_timeout=1,
23+
)
24+
25+
26+
def make_app():
27+
loop = asyncio.get_event_loop()
28+
redis_pool = loop.run_until_complete(make_redis_pool())
29+
storage = RedisStorage(redis_pool)
30+
31+
async def dispose_redis_pool(app):
32+
redis_pool.close()
33+
await redis_pool.wait_closed()
34+
35+
app = web.Application()
36+
setup(app, storage)
37+
app.on_cleanup.append(dispose_redis_pool)
38+
app.router.add_get('/', handler)
39+
return app
40+
41+
42+
web.run_app(make_app())

0 commit comments

Comments
 (0)