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 server 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
File details
Details for the file starlette_session-0.4.3.tar.gz
.
File metadata
- Download URL: starlette_session-0.4.3.tar.gz
- Upload date:
- Size: 6.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.2.2 CPython/3.10.8 Linux/5.15.0-1022-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5b50a1c91a2ca1cf594574c0b386eea5dbed140dcb397ee73f0c43956bd2bfcc |
|
MD5 | 4a0713aaa68878a7a0faa448d37e0fb9 |
|
BLAKE2b-256 | 0a76e973d473cfabcce37d8bc3832de51f0b22dd29d49d41ce58ec6e7daadc9b |
File details
Details for the file starlette_session-0.4.3-py3-none-any.whl
.
File metadata
- Download URL: starlette_session-0.4.3-py3-none-any.whl
- Upload date:
- Size: 6.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.2.2 CPython/3.10.8 Linux/5.15.0-1022-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bfc2559ec0fec566b44865f20d1c4262b1132de867a936abe8771cf139cbbe0b |
|
MD5 | 77271041f432161ef95b90f71bdf3b37 |
|
BLAKE2b-256 | 45fdeaff58a14a6b7a2dccd4ec6c82883bde5fcd9b256065c9e24423b8f33a12 |