- Notifications
You must be signed in to change notification settings - Fork50
Provides server-backed sessions for Sanic using Redis, Memcache and more.
License
ahopkins/sanic-session
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
sanic-session
is session management extension forSanic that integrates server-backed sessions with most convenient API.
sanic-session
provides a number ofsession interfaces for you to store a client's session data. The interfaces available right now are:
- Redis (supports both drivers
aioredis
andasyncio_redis
) - Memcache (via
aiomcache
) - Mongodb (via
sanic_motor
andpymongo
) - In-Memory (suitable for testing and development environments)
Install withpip
(there is other options for different drivers, check documentation):
pip install sanic_session
Documentation is available atsanic-session.readthedocs.io.
Also, make sure you readOWASP's Session Management Cheat Sheet for some really useful info on session management.
A simple example uses the in-memory session interface.
fromsanicimportSanicfromsanic.responseimporttextfromsanic_sessionimportSession,InMemorySessionInterfaceapp=Sanic(name="ExampleApp")session=Session(app,interface=InMemorySessionInterface())@app.route("/")asyncdefindex(request):# interact with the session like a normal dictifnotrequest.ctx.session.get('foo'):request.ctx.session['foo']=0request.ctx.session['foo']+=1returntext(str(request.ctx.session["foo"]))if__name__=="__main__":app.run(host="0.0.0.0",port=8000)
Examples of using redis and memcache backed sessions can be found in the documentation, underUsing the Interfaces.
— ⭐️ —
About
Provides server-backed sessions for Sanic using Redis, Memcache and more.