用于starlette的后端会话库
项目描述
文档: https://auredentan.github.io/starlette-session/
Starlette会话
Starlette会话是一个简单的会话中间件,用于starlette,它能够为starlette启用后端会话。
要求
Python 3.6+
安装
pip install starlette-session
示例
使用redis作为后端
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,
)
您可以在这里找到更多示例
使用自定义后端
您可以为使用提供自定义后端。此后端只需实现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()
项目详情
关闭
starlette_session-0.4.3.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5b50a1c91a2ca1cf594574c0b386eea5dbed140dcb397ee73f0c43956bd2bfcc |
|
MD5 | 4a0713aaa68878a7a0faa448d37e0fb9 |
|
BLAKE2b-256 | 0a76e973d473cfabcce37d8bc3832de51f0b22dd29d49d41ce58ec6e7daadc9b |
关闭
starlette_session-0.4.3-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | bfc2559ec0fec566b44865f20d1c4262b1132de867a936abe8771cf139cbbe0b |
|
MD5 | 77271041f432161ef95b90f71bdf3b37 |
|
BLAKE2b-256 | 45fdeaff58a14a6b7a2dccd4ec6c82883bde5fcd9b256065c9e24423b8f33a12 |