Установка django.setup() между контейнерами в docker-compose
Я создаю приложение в docker, которое содержит два сервиса, один из которых - приложение django, а второй - сервер websockets для игры в шахматы, который содержит client.py
server.py
chess.py
. Вся игра ведется на терминалах, во время работы сервера оба игрока могут играть, запуская client.py
на своих терминалах.
Теперь я хочу интегрировать сервер websockets с django и заставить игроков аутентифицироваться, предоставляя токен, сгенерированный в django-sesame
, как в этом docs, но я получаю ошибку в строке django.setup()
:
django.core.exceptions.ImproperlyConfigured: Запрошена настройка LOGGING_CONFIG, но настройки не настроены. Вы должны либо определить переменную окружения DJANGO_SETTINGS_MODULE, либо вызвать settings.configure() перед доступом к настройкам.
.
Я предполагаю, что мне нужно указать на настройки django, но у меня нет доступа, так как он находится в другом контейнере. Как я могу это сделать?
Код из упомянутой документации:
import asyncio
import django
import websockets
django.setup()
from sesame.utils import get_user
async def handler(websocket):
sesame = await websocket.recv()
user = await asyncio.to_thread(get_user, sesame)
if user is None:
await websocket.close(1011, "authentication failed")
return
await websocket.send(f"Hello {user}!")
async def main():
async with websockets.serve(handler, "localhost", 8888):
await asyncio.Future() # run forever
if __name__ == "__main__":
asyncio.run(main())
Я пытался указать на настройки по
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "code.app.app.settings")
django.setup()
Но я получил ошибку:
ModuleNotFoundError: Нет модуля с именем 'code.app'; 'code' не является пакетом
.