valar for morghulis
Project description
valar for morghulis
1. install
pip install valar
1. settings
from django.core.management.utils import get_random_secret_key
from pathlib import Path
""" Compulsory settings """
DEBUG = True
BASE_DIR = Path(__file__).resolve().parent.parent
BASE_APP = str(BASE_DIR.name)
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
SECRET_KEY = get_random_secret_key()
""" Valar Options """
HANDLER_MAPPING = "%s.urls.channel_mapping" % BASE_APP
MONGO_URI = 'mongodb://root:19870120@121.41.111.175:27017/'
MINIO_URL = "s3://admin:password@120.27.8.186:9000"
""" Minimized compulsory settings """
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
INSTALLED_APPS = [
'django.contrib.sessions',
"corsheaders",
'channels',
'valar.apps.ValarConfig',
]
MIDDLEWARE = [
'django.contrib.sessions.middleware.SessionMiddleware',
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
]
CHANNEL_LAYERS = {
"default": {
"BACKEND": "channels.layers.InMemoryChannelLayer"
}
}
CORS_ORIGIN_ALLOW_ALL = True
CORS_ALLOW_CREDENTIALS = True
ROOT_URLCONF = "%s.urls" % BASE_APP
ASGI_APPLICATION = "%s.asgi.application" % BASE_APP
""" Optional settings """
ALLOWED_HOSTS = ['*']
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_TZ = False
SESSION_SAVE_EVERY_REQUEST = True
SESSION_COOKIE_AGE = 60 * 60
FILE_UPLOAD_MAX_MEMORY_SIZE = 1024 * 1024 * 100
DATA_UPLOAD_MAX_MEMORY_SIZE = 1024 * 1024 * 100
2. asgi
from django.core.asgi import get_asgi_application
from channels.routing import ProtocolTypeRouter, URLRouter
from django.urls import re_path
from valar.channels.consumer import ValarConsumer
application = ProtocolTypeRouter({
'http': get_asgi_application(),
'websocket': URLRouter([
re_path(r'(?P<client>\w+)/$', ValarConsumer.as_asgi()),
])
})
3. migrate
no need, valar will auto migration
4. root urls
no need, valar will auto set urlpatterns
5. how to use valar_channel
5.1 set HANDLER_MAPPING in settings
HANDLER_MAPPING = "%s.urls.channel_mapping" % BASE_APP
5.2 create a handler
from valar.channels.sender import ValarSocketSender
def test_handler(sender: ValarSocketSender):
data = sender.data
sender.load(data)
5.3 register handler in channel_mapping
channel_mapping = {
'test': test_handler,
}
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
valar-1.2.2.tar.gz
(28.3 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
valar-1.2.2-py3-none-any.whl
(37.0 kB
view details)
File details
Details for the file valar-1.2.2.tar.gz.
File metadata
- Download URL: valar-1.2.2.tar.gz
- Upload date:
- Size: 28.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1bdad2e150212a323bf91ab4e9cb7c65cab0006712cd69f3083cf128592c3a00
|
|
| MD5 |
2ba2249dae4ed622d3d58e314bbcc5d1
|
|
| BLAKE2b-256 |
a3bd52b18d0ffae51052f67dd53b2c2f53a129d48ab5a7e3d5649342260a3e8a
|
File details
Details for the file valar-1.2.2-py3-none-any.whl.
File metadata
- Download URL: valar-1.2.2-py3-none-any.whl
- Upload date:
- Size: 37.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
45da8cbf42c4cf26aa695b711d9cad03dd51ef6ec78db80b15762ebe5791e334
|
|
| MD5 |
1c00865fa2850538f87760782a465fa7
|
|
| BLAKE2b-256 |
7a9f048ba622119fedfd6be31d776e1305caf66680dbb39207620fe79b4a3653
|