aiohttp_session_mongo
===============
.. image:: https://travis-ci.org/alexpantyukhin/aiohttp-session-mongo.svg?branch=master
:target: https://travis-ci.org/alexpantyukhin/aiohttp-session-mongo
.. image:: https://codecov.io/github/alexpantyukhin/aiohttp-session-mongo/coverage.svg?branch=master
:target: https://codecov.io/github/alexpantyukhin/aiohttp-session-mongo
The library provides mongo sessions store for `aiohttp.web`__.
.. _aiohttp_web: https://aiohttp.readthedocs.io/en/latest/web.html
__ aiohttp_web_
Usage
-----
A trivial usage example:
.. code:: python
import time
from aiohttp import web
from aiohttp_session import setup, get_session
from aiohttp_session_mongo import MongoStorage
import motor.motor_asyncio as aiomotor
import asyncio
async def handler(request):
session = await get_session(request)
last_visit = session['last_visit'] if 'last_visit' in session else None
session['last_visit'] = time.time()
text = 'Last visited: {}'.format(last_visit)
return web.Response(text=text)
async def init_mongo(loop):
url = "mongodb://localhost:27017"
conn = aiomotor.AsyncIOMotorClient(
url, maxPoolSize=2, io_loop=loop)
db = 'my_db'
return conn[db]
async def setup_mongo(app, loop):
db = await init_mongo(loop)
async def close_mongo(app):
db.client.close()
app.on_cleanup.append(close_mongo)
return db
async def make_app():
app = web.Application()
loop = asyncio.get_event_loop()
db = await setup_mongo(app, loop)
session_collection = db['sessions']
max_age = 3600 * 24 * 365 # 1 year
setup(app, MongoStorage(session_collection, max_age=max_age))
app.router.add_get('/', handler)
return app
web.run_app(make_app())
===============
.. image:: https://travis-ci.org/alexpantyukhin/aiohttp-session-mongo.svg?branch=master
:target: https://travis-ci.org/alexpantyukhin/aiohttp-session-mongo
.. image:: https://codecov.io/github/alexpantyukhin/aiohttp-session-mongo/coverage.svg?branch=master
:target: https://codecov.io/github/alexpantyukhin/aiohttp-session-mongo
The library provides mongo sessions store for `aiohttp.web`__.
.. _aiohttp_web: https://aiohttp.readthedocs.io/en/latest/web.html
__ aiohttp_web_
Usage
-----
A trivial usage example:
.. code:: python
import time
from aiohttp import web
from aiohttp_session import setup, get_session
from aiohttp_session_mongo import MongoStorage
import motor.motor_asyncio as aiomotor
import asyncio
async def handler(request):
session = await get_session(request)
last_visit = session['last_visit'] if 'last_visit' in session else None
session['last_visit'] = time.time()
text = 'Last visited: {}'.format(last_visit)
return web.Response(text=text)
async def init_mongo(loop):
url = "mongodb://localhost:27017"
conn = aiomotor.AsyncIOMotorClient(
url, maxPoolSize=2, io_loop=loop)
db = 'my_db'
return conn[db]
async def setup_mongo(app, loop):
db = await init_mongo(loop)
async def close_mongo(app):
db.client.close()
app.on_cleanup.append(close_mongo)
return db
async def make_app():
app = web.Application()
loop = asyncio.get_event_loop()
db = await setup_mongo(app, loop)
session_collection = db['sessions']
max_age = 3600 * 24 * 365 # 1 year
setup(app, MongoStorage(session_collection, max_age=max_age))
app.router.add_get('/', handler)
return app
web.run_app(make_app())
Metadata
Release files for aiohttp-session-mongo 0.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| aiohttp-session-mongo-0.0.1.tar.gz | 3.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| aiohttp_session_mongo-0.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 6.3 kB
Release files / aiohttp-session-mongo-0.0.1.tar.gz
| Download URL | aiohttp-session-mongo-0.0.1.tar.gz |
|---|---|
| Size | 3.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1aba176cfdef292ecf129151a431c12ee12fdd6b0bffa019945f5bc9a447857a
|
|
BLAKE2b-256 checksum How to use checksums |
08af0e1c808d10fca3f2e6789c1ed28aea57df3e2c82e0f5b5bd694d421ef84d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.5.6
|
Release files / aiohttp_session_mongo-0.0.1-py3-none-any.whl
| Download URL | aiohttp_session_mongo-0.0.1-py3-none-any.whl |
|---|---|
| Size | 3.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6290bdc0b62d805cb4e87663106d0d77ff329cf524bc772be90c98c45d9f9b30
|
|
BLAKE2b-256 checksum How to use checksums |
a7bcc010e76951ae1bc207e6e79e520d39bc174271319426f2ac3fe5b65503c5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.5.6
|