Skip to main content

mongo sessions for aiohttp.web

Project description

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())

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aiohttp-session-mongo-0.0.1.tar.gz (3.2 kB view details)

Uploaded Source

Built Distribution

aiohttp_session_mongo-0.0.1-py3-none-any.whl (3.2 kB view details)

Uploaded Python 3

File details

Details for the file aiohttp-session-mongo-0.0.1.tar.gz.

File metadata

  • Download URL: aiohttp-session-mongo-0.0.1.tar.gz
  • Upload date:
  • Size: 3.2 kB
  • Tags: Source
  • Uploaded using 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

File hashes

Hashes for aiohttp-session-mongo-0.0.1.tar.gz
Algorithm Hash digest
SHA256 1aba176cfdef292ecf129151a431c12ee12fdd6b0bffa019945f5bc9a447857a
MD5 1e6ec6f0adeb9c3da9d9118b74af90c1
BLAKE2b-256 08af0e1c808d10fca3f2e6789c1ed28aea57df3e2c82e0f5b5bd694d421ef84d

See more details on using hashes here.

File details

Details for the file aiohttp_session_mongo-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: aiohttp_session_mongo-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 3.2 kB
  • Tags: Python 3
  • Uploaded using 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

File hashes

Hashes for aiohttp_session_mongo-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6290bdc0b62d805cb4e87663106d0d77ff329cf524bc772be90c98c45d9f9b30
MD5 37945474b8599e709b0e3f9ff0b33eb3
BLAKE2b-256 a7bcc010e76951ae1bc207e6e79e520d39bc174271319426f2ac3fe5b65503c5

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page