Skip to main content

A redis session implementation for python-simple-http-server

Project description

Redis Sesion Implementation for Python Simple Http Server

What's this?

This is the redis session implementation for the project https://github.com/keijack/python-simple-http-server, use this extention to save you session data to redis.

How to use?

import simple_http_server
import simple_http_server.server as server
import os
from simple_http_server_redis_session.http_session_redis_impl import RedisSessionFactory

def main(*args):
    # host, port, db, username, password are all optional.
    simple_http_server.set_session_factory(RedisSessionFactory(host="10.0.2.16", port=6379, db=0, username="", password=""))
    server.scan("tests/ctrls", r'.*controllers.*')

    root = os.path.dirname(os.path.abspath(__file__))
    server.start(
        port=9090,
        resources={"/public/*": f"{root}/tests/static"})

or you can re-use your redis client which might be used in other codes.

import simple_http_server
import simple_http_server.server as server
import os
import redis
from simple_http_server_redis_session.http_session_redis_impl import RedisSessionFactory

def main(*args):
    # This redis client can be used in other business codes.
    redis_client = redis.Redis(host="10.0.2.16", port=6379, db=0, username="", password="")
    simple_http_server.set_session_factory(RedisSessionFactory(redis_client=redis_client))

    root = os.path.dirname(os.path.abspath(__file__))
    server.start(
        port=9090,
        resources={"/public/*": f"{root}/tests/static"})

Write Your Own ObjectSerializer

Module pickle is used to do the serialization and deserialization, if the defalut serialization logic could not satisfy you, you can write your own

simple_http_server_redis_session.http_session_redis_impl import ObjectSerializer

class MyObjectSerializer(ObjectSerializer):

    def object_to_bytes(self, obj: Any) -> bytes:
        bys = ...
        return bys

    def bytes_to_objects(self, value: bytes) -> Any:
        obj = ...
        return obj

# Set it when initializing a SessionFactory.

simple_http_server.set_session_factory(RedisSessionFactory(host="10.0.2.16", port=6379, db=0, username="", password="", object_serializer=MyObjectSerializer()))

Project details


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 simple_http_server_redis_session-0.3.0.tar.gz.

File metadata

  • Download URL: simple_http_server_redis_session-0.3.0.tar.gz
  • Upload date:
  • Size: 4.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.5

File hashes

Hashes for simple_http_server_redis_session-0.3.0.tar.gz
Algorithm Hash digest
SHA256 55abc21e67fe4841d4ef14c7fb646eeb15bbd32eb09ab1e45e81e7e179a3de85
MD5 bab9a309f5bf89f268476d007b15a4ff
BLAKE2b-256 82cacb242c7105ba76ca53d6eda45d69af9cea6a431fe80d04ccb0508ad0810b

See more details on using hashes here.

File details

Details for the file simple_http_server_redis_session-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: simple_http_server_redis_session-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 6.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.5

File hashes

Hashes for simple_http_server_redis_session-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1a77db935907a2a3cd1c752ba501ae67c2b2a12117153581d9e74f5d5dcdd397
MD5 7a3da89b9e6b58ae6011dd8da4a16c91
BLAKE2b-256 960ceaacdf3fd755b5f034e83647752ea082c0eb22640ba5a28eadc0d6a98d25

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page