{ "info": { "author": "Alexander Pantyukhin", "author_email": "apantykhin@gmail.com", "bugtrack_url": null, "classifiers": [ "Framework :: AsyncIO", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Internet :: WWW/HTTP" ], "description": "aiohttp_session_mongo\n===============\n.. image:: https://travis-ci.org/alexpantyukhin/aiohttp-session-mongo.svg?branch=master\n :target: https://travis-ci.org/alexpantyukhin/aiohttp-session-mongo\n.. image:: https://codecov.io/github/alexpantyukhin/aiohttp-session-mongo/coverage.svg?branch=master\n :target: https://codecov.io/github/alexpantyukhin/aiohttp-session-mongo\n\nThe library provides mongo sessions store for `aiohttp.web`__.\n\n.. _aiohttp_web: https://aiohttp.readthedocs.io/en/latest/web.html\n\n__ aiohttp_web_\n\nUsage\n-----\n\nA trivial usage example:\n\n.. code:: python\n\n import time\n from aiohttp import web\n from aiohttp_session import setup, get_session\n from aiohttp_session_mongo import MongoStorage\n import motor.motor_asyncio as aiomotor\n import asyncio\n\n\n async def handler(request):\n session = await get_session(request)\n last_visit = session['last_visit'] if 'last_visit' in session else None\n session['last_visit'] = time.time()\n text = 'Last visited: {}'.format(last_visit)\n return web.Response(text=text)\n\n\n async def init_mongo(loop):\n url = \"mongodb://localhost:27017\"\n conn = aiomotor.AsyncIOMotorClient(\n url, maxPoolSize=2, io_loop=loop)\n db = 'my_db'\n return conn[db]\n\n\n async def setup_mongo(app, loop):\n db = await init_mongo(loop)\n\n async def close_mongo(app):\n db.client.close()\n\n app.on_cleanup.append(close_mongo)\n return db\n\n\n async def make_app():\n app = web.Application()\n loop = asyncio.get_event_loop()\n\n db = await setup_mongo(app, loop)\n session_collection = db['sessions']\n\n max_age = 3600 * 24 * 365 # 1 year\n setup(app, MongoStorage(session_collection, max_age=max_age))\n\n app.router.add_get('/', handler)\n return app\n\n\n web.run_app(make_app())\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/alexpantyukhin/aiohttp-session-mongo/", "keywords": "", "license": "Apache 2", "maintainer": "", "maintainer_email": "", "name": "aiohttp-session-mongo", "package_url": "https://pypi.org/project/aiohttp-session-mongo/", "platform": "", "project_url": "https://pypi.org/project/aiohttp-session-mongo/", "project_urls": { "Homepage": "https://github.com/alexpantyukhin/aiohttp-session-mongo/" }, "release_url": "https://pypi.org/project/aiohttp-session-mongo/0.0.1/", "requires_dist": [ "aiohttp-session", "motor; extra == 'motor'" ], "requires_python": ">=3.5", "summary": "mongo sessions for aiohttp.web", "version": "0.0.1" }, "last_serial": 4337873, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "37945474b8599e709b0e3f9ff0b33eb3", "sha256": "6290bdc0b62d805cb4e87663106d0d77ff329cf524bc772be90c98c45d9f9b30" }, "downloads": -1, "filename": "aiohttp_session_mongo-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "37945474b8599e709b0e3f9ff0b33eb3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 3173, "upload_time": "2018-10-03T19:46:53", "url": "https://files.pythonhosted.org/packages/a7/bc/c010e76951ae1bc207e6e79e520d39bc174271319426f2ac3fe5b65503c5/aiohttp_session_mongo-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1e6ec6f0adeb9c3da9d9118b74af90c1", "sha256": "1aba176cfdef292ecf129151a431c12ee12fdd6b0bffa019945f5bc9a447857a" }, "downloads": -1, "filename": "aiohttp-session-mongo-0.0.1.tar.gz", "has_sig": false, "md5_digest": "1e6ec6f0adeb9c3da9d9118b74af90c1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 3157, "upload_time": "2018-10-03T19:46:54", "url": "https://files.pythonhosted.org/packages/08/af/0e1c808d10fca3f2e6789c1ed28aea57df3e2c82e0f5b5bd694d421ef84d/aiohttp-session-mongo-0.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "37945474b8599e709b0e3f9ff0b33eb3", "sha256": "6290bdc0b62d805cb4e87663106d0d77ff329cf524bc772be90c98c45d9f9b30" }, "downloads": -1, "filename": "aiohttp_session_mongo-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "37945474b8599e709b0e3f9ff0b33eb3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 3173, "upload_time": "2018-10-03T19:46:53", "url": "https://files.pythonhosted.org/packages/a7/bc/c010e76951ae1bc207e6e79e520d39bc174271319426f2ac3fe5b65503c5/aiohttp_session_mongo-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1e6ec6f0adeb9c3da9d9118b74af90c1", "sha256": "1aba176cfdef292ecf129151a431c12ee12fdd6b0bffa019945f5bc9a447857a" }, "downloads": -1, "filename": "aiohttp-session-mongo-0.0.1.tar.gz", "has_sig": false, "md5_digest": "1e6ec6f0adeb9c3da9d9118b74af90c1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 3157, "upload_time": "2018-10-03T19:46:54", "url": "https://files.pythonhosted.org/packages/08/af/0e1c808d10fca3f2e6789c1ed28aea57df3e2c82e0f5b5bd694d421ef84d/aiohttp-session-mongo-0.0.1.tar.gz" } ] }