Skip to main content

Very simple way to interact with any http and Websocket requests

from darius.server import server,routes
from darius.client_side import status

class Home(routes.View):
    def GET(self,request,**kwargs):
        return status.Http200().__call__("<h1>Home Page</h1>")

    def POST(self,request,**kwargs):
        return status.HttpBinary().__call__("dog.png",display_in_browser=True)

    def __init__(self,*args,**kwargs): 
        """Optional : Add your own custom HTTP method requests"""
        super(Home,self).__init__(*args,**kwargs)
        self.cases['CREATE'] = self.POST # Custom HTTP method

class Chat(routes.SocketView):
    def onConnect(self,client,**kwargs):
        key = kwargs.get("key")
        username = kwargs.get("headers")['Cookies']['username']
        self.accept(client,key)
        return {"username" : username,"id" : ord(username[0]) % 51} # Stored as state with client

    def onMessage(self,client,**kwargs):
        data = kwargs.get('data') # Message sent
        path_info = kwargs.get("path_info") # Containing information about clients
        send = kwargs.get('send_function') # Functions to send data

        # Send the message to every client
        for client in path_info['clients']:
            if(client['username'].startswith("a")) or client['id'] % 2 == 0:
                send(client,data)

    def onExit(self,client,**kwargs):
        print("Client exited!")

And then to actually list the paths and start the Server

WS_URLS = {
    r'/chat(\/)?' : Chat()
}

HTTP_URLS = {
    r'/home(\/)?' : Home()
}

server.Server(WS_URLS,HTTP_URLS,port=8000).start()

More can be found at Github

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

darius-1.0.0.tar.gz (20.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

darius-1.0.0-py3-none-any.whl (22.5 kB view details)

Uploaded Python 3

File details

Details for the file darius-1.0.0.tar.gz.

File metadata

  • Download URL: darius-1.0.0.tar.gz
  • Upload date:
  • Size: 20.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.6

File hashes

Hashes for darius-1.0.0.tar.gz
Algorithm Hash digest
SHA256 350929fc394dd06cecd8deba317ac763511110be0b6d4bc6964a939a7c37954e
MD5 051c93dad2ccf02d8520112e7c4359e3
BLAKE2b-256 57dc4e824553330295ffd462540706eb776877f036ced64b7e55eab30a24f1c1

See more details on using hashes here.

File details

Details for the file darius-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: darius-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 22.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.6

File hashes

Hashes for darius-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b8044a66391ca75b93e2bd69dec9d1d41abda8ea34ab849a860dd77857303f7e
MD5 ae3f195b7e621695e82331987a50d5b6
BLAKE2b-256 a3b1d25f3819f038f7f929b0402920f45fab5b430285d3777b1a21bc83a04cb1

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page