A library for backend side session with starlette
Project description
Documentation: https://auredentan.github.io/starlette-session/
Starlette Session
Starlette session is a simple session middleware for starlette that enable backend side session with starlette.
Requirements
Python 3.6+
Installation
pip install starlette-session
Example
Using redis as backend
from starlette.applications import Starlette
from starlette.requests import Request
from starlette.responses import JSONResponse
from starlette.routing import Route
from starlette_session import SessionMiddleware
from starlette_session.backends import BackendType
from redis import Redis
async def setup_session(request: Request) -> JSONResponse:
request.session.update({"data": "session_data"})
return JSONResponse({"session": request.session})
async def clear_session(request: Request):
request.session.clear()
return JSONResponse({"session": request.session})
def view_session(request: Request) -> JSONResponse:
return JSONResponse({"session": request.session})
routes = [
Route("/setup_session", endpoint=setup_session),
Route("/clear_session", endpoint=clear_session),
Route("/view_session", endpoint=view_session),
]
redis_client = Redis(host="localhost", port=6379)
app = Starlette(debug=True, routes=routes)
app.add_middleware(
SessionMiddleware,
secret_key="secret",
cookie_name="cookie22",
backend_type=BackendType.redis,
backend_client=redis_client,
)
You can find more example here
Using a custom backend
You can provide a custom backend to be used. This backend has simply to implement the interface ISessionBackend
class ISessionBackend(ABC):
@abstractmethod
async def get(self, key: str) -> Optional[dict]:
raise NotImplementedError()
@abstractmethod
async def set(self, key: str, value: dict, exp_in_mins: str) -> Optional[str]:
raise NotImplementedError()
@abstractmethod
async def delete(key: str) -> Any:
raise NotImplementedError()
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for starlette_session-0.4.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9cb657e052e66e8805f17e7852b75af4138eba12c470ef38fa62f1d5f21a073f |
|
MD5 | 6df20d0ad8f572759c8cbd9b3ca02281 |
|
BLAKE2b-256 | 37cd4893933c1f41628d18fe75b6e82ec43ce8ea592ea2482d34cce90161767a |