{ "info": { "author": "Suby Raman", "author_email": "", "bugtrack_url": null, "classifiers": [ "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3 :: Only", "Topic :: Internet :: WWW/HTTP :: Session" ], "description": "### sanic_session\n\nsanic_session is an extension for sanic that integrates server-backed sessions with a Flask-like API.\n\nsanic_session provides a number of *session interfaces* for you to store a client's session data. The interfaces available right now are:\n\n* Redis (using aioredis, asyncio_redis)\n* Memcache (using aiomemcache)\n* MongoDB (using sanic_motor)\n* In-Memory (suitable for testing and development environments)\n\nForked from: https://github.com/subyraman/sanic_session\nAdded more easy installation, fixed code a little bit.\n\n## Installation\n\nInstall with `pip`:\n\n`pip install sanic_session`\n\n## Examples\n\nA simple example uses the in-memory session interface.\n\n\n```python\n from sanic import Sanic\n from sanic.response import text\n import sanic_session\n\n\n app = Sanic()\n sanic_session.install_middleware(app, 'InMemorySessionInterface')\n\n\n @app.route(\"/\")\n async def index(request):\n # interact with the session like a normal dict\n if not request['session'].get('foo'):\n request['session']['foo'] = 0\n\n request['session']['foo'] += 1\n\n return text(request['session']['foo'])\n\n if __name__ == \"__main__\":\n app.run(host=\"0.0.0.0\", port=8000, debug=True)\n```\n\nUsing sanic_session with Redis via asyncio_redis.\n\nInstall sanic_session to use with asyncio_redis driver: `pip install sanic_session[asyncio_redis]`\n\n\n```python\n import asyncio_redis\n\n from sanic import Sanic\n from sanic.response import text\n import sanic_session\n\n\n app = Sanic()\n\n\n # general (for all app) redis pool\n # (should be filled asynchronously after server start)\n asyncio_redis_pool = None\n\n @app.listener ('before_server_start')\n async def general_before_server_start (app, loop):\n global asyncio_redis_pool\n asyncio_redis_pool = await asyncio_redis.Pool.create(host='127.0.0.1', port=6379, poolsize=2)\n sanic_session.install_middleware (app, 'AsyncioRedisSessionInterface', asyncio_redis_pool)\n\n @app.listener ('after_server_stop')\n async def general_after_server_stop (app, loop):\n asyncio_redis_pool.close ()\n\n\n @app.route(\"/\")\n async def test(request):\n # interact with the session like a normal dict\n if not request['session'].get('foo'):\n request['session']['foo'] = 0\n\n request['session']['foo'] += 1\n\n response = text(request['session']['foo'])\n\n return response\n\n if __name__ == \"__main__\":\n app.run(host=\"0.0.0.0\", port=8000, debug=True)\n```\n\n\nUsing sanic_session with Memcache via aiomemcache.\n\nInstall sanic_session to use with aiomemcache driver: `pip install sanic_session[aiomcache]`\n\n\n```python\n import aiomcache\n import uvloop\n\n from sanic import Sanic\n from sanic.response import text\n import sanic_session\n\n app = Sanic()\n\n\n # create a uvloop to pass into the memcache client and sanic\n loop = uvloop.new_event_loop()\n\n # create a memcache client\n client = aiomcache.Client(\"127.0.0.1\", 11211, loop=loop)\n\n # install sanic_session middleware with memcache client\n sanic_session.install_middleware (app, 'MemcacheSessionInterface', client)\n\n\n @app.route(\"/\")\n async def test(request):\n # interact with the session like a normal dict\n if not request['session'].get('foo'):\n request['session']['foo'] = 0\n\n request['session']['foo'] += 1\n\n response = text(request['session']['foo'])\n\n return response\n\n if __name__ == \"__main__\":\n app.run(host=\"0.0.0.0\", port=8000, debug=True, loop=loop)\n```\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://bitbucket.org/vlad1777d/sanic_session_2", "keywords": "sessions", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "sanic_session_2", "package_url": "https://pypi.org/project/sanic_session_2/", "platform": "", "project_url": "https://pypi.org/project/sanic_session_2/", "project_urls": { "Homepage": "https://bitbucket.org/vlad1777d/sanic_session_2" }, "release_url": "https://pypi.org/project/sanic_session_2/0.2.6/", "requires_dist": null, "requires_python": "", "summary": "Provides server-backed sessions for Sanic using Redis, Memcache, Mongo, in-memory.", "version": "0.2.6" }, "last_serial": 4106463, "releases": { "0.2.5": [ { "comment_text": "", "digests": { "md5": "b7eed306f3ace820990400bfa4fe569d", "sha256": "4d2e342ad57ef89120a38cdfa787f1a32268494d041006be3c669292b5ef6665" }, "downloads": -1, "filename": "sanic_session_2-0.2.5.tar.gz", "has_sig": false, "md5_digest": "b7eed306f3ace820990400bfa4fe569d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6713, "upload_time": "2018-07-26T21:38:02", "url": "https://files.pythonhosted.org/packages/94/cc/ef311bd869dbb0514fbb0036e8477eb06658c27162d3c3cadbe60b7af19e/sanic_session_2-0.2.5.tar.gz" } ], "0.2.6": [ { "comment_text": "", "digests": { "md5": "ca4f07d5ff4a9f6d3aae3a10719aea79", "sha256": "0251016dafd658f3bd9d40c47df5debc2045e7392372b4971636ec85da21fe85" }, "downloads": -1, "filename": "sanic_session_2-0.2.6.tar.gz", "has_sig": false, "md5_digest": "ca4f07d5ff4a9f6d3aae3a10719aea79", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7067, "upload_time": "2018-07-26T21:44:42", "url": "https://files.pythonhosted.org/packages/59/8d/a05a22bfdba7175ba0942dccdabacc61bea71c4ee6ea8d85c89fbfd1419a/sanic_session_2-0.2.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ca4f07d5ff4a9f6d3aae3a10719aea79", "sha256": "0251016dafd658f3bd9d40c47df5debc2045e7392372b4971636ec85da21fe85" }, "downloads": -1, "filename": "sanic_session_2-0.2.6.tar.gz", "has_sig": false, "md5_digest": "ca4f07d5ff4a9f6d3aae3a10719aea79", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7067, "upload_time": "2018-07-26T21:44:42", "url": "https://files.pythonhosted.org/packages/59/8d/a05a22bfdba7175ba0942dccdabacc61bea71c4ee6ea8d85c89fbfd1419a/sanic_session_2-0.2.6.tar.gz" } ] }