An easy library to use to host an HTTP or a Websocket server with plenty of functionality
Project description
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
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
darius-1.0.0.tar.gz
(20.2 kB
view details)
Built Distribution
darius-1.0.0-py3-none-any.whl
(22.5 kB
view details)
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 350929fc394dd06cecd8deba317ac763511110be0b6d4bc6964a939a7c37954e |
|
MD5 | 051c93dad2ccf02d8520112e7c4359e3 |
|
BLAKE2b-256 | 57dc4e824553330295ffd462540706eb776877f036ced64b7e55eab30a24f1c1 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | b8044a66391ca75b93e2bd69dec9d1d41abda8ea34ab849a860dd77857303f7e |
|
MD5 | ae3f195b7e621695e82331987a50d5b6 |
|
BLAKE2b-256 | a3b1d25f3819f038f7f929b0402920f45fab5b430285d3777b1a21bc83a04cb1 |