inflearn logo
강의

講義

知識共有

Python/Djangoでウェブチャットサービス作り (Feat. Channels) - 基本編

Redisサーバーの駆動と接続

AttributeError: 'NoneType' object has no attribute 'send'

1523

hyukster90666

投稿した質問数 48

0

 import asyncio
import os

import django
from channels.layers import get_channel_layer

os.environ["DJANGO_SETTINGS_MODULE"] = "backend.settings"
django.setup()


async def main():
    channel_layer = get_channel_layer()
    print(channel_layer)

    message_dict = {'content': 'world'}
    await channel_layer.send('hello', message_dict)
    response_dict = await channel_layer.receive('hello')
    is_equal = message_dict == response_dict
    print("송신/수신 데이터가 같습니까?", is_equal)


asyncio.run(main())

channel_layer가 자꾸 None으로 지정되서

channel_layer.send

이 부분도 실행이 안됩니다.

구글링도 해보고 chatgpt에도 물어보고

redis 버전도 낮춰보고 다했는데 안됩니당..

redis 4.3.6

channels 4.0.0

channels-redis 4.1.0

입니다.

python django django-channels

回答 3

1

pyhub

안녕하세요.

강의 5:08 구간처럼 settings.CHANNEL_LAYERS 설정을 아래 스샷과 같이 확인해보셨나요?

image

settings.py 코드 내역과 장고 쉘에서 확인한 해당 설정값을 댓글로 보여주시겠어요?

get_channel_layer 구현을 보시면, CHANNEL_LAYERS에서 지정 alias 키의 설정이 없을 경우, None을 반환하기도 합니다. // CHANNEL_LAYERS 입력에서 오타가 있으시거나, 'default' 키에서 오타가 있으실 수도 있습니다.

image

https://github.com/django/channels/blob/093326080b4984fcb39f51955681800e39e14f43/channels/layers.py#L352

확인해보시고, 댓글 부탁드립니다.

화이팅입니다. :-)

0

kookb2000

.env 파일에 REDIS_URL다음 "="를 띄우면 안됩니다.

0

pyhub

맞습니다. 그 설정은 무시됩니다. 👍

0

hyukster90666

아무래도 프로젝트 설정파일을 못읽는거같아서

os.environ["DJANGO_SETTINGS_MODULE"] = "backend.settings"

이 부분을 수정했더니 잘 됩니다. !! 감사합니다.

os.environ["DJANGO_SETTINGS_MODULE"] = "backend.settings.settings로 바꿨어용 "

0

pyhub

잘 구동된다니 다행입니다. :-)

그런데 settings 경로가 좀 이상한데요.

지금 settings.py 파일의 전체 경로가 어떻게 되나요? settings 폴더 안에 settings.py파일이 있나요?

유저목록 확인 문제 질문드립니다.

0

164

2

안녕하세요 선생님,

0

91

1

하나의 채팅방만 만들어보려고 하는데 잘 안되고 있습니다.

0

103

1

도커와 연동 관련 질문드립니다.

0

205

3

채팅방 참여자 목록 - 채팅방 입장/퇴장 실시간 이벤트 처리

0

165

2

안녕하세요, onopen() 문제로 질문드립니다.

0

137

2

Consumer Instances 관련 질문 있습니다.

0

71

2

안녕하세요, 요청은 채널스에서 먼저 받고, http 요청은 장고를 통해서 처리한다고 하셨는데요.

0

79

2

기능 구현 질문 드립니다.

0

115

1

git에 있는 코드를 다운 받아 실행 해봤는데 에러가 났습니다.

0

153

2

ValueError: No route found for path 'ws/liveblog/'.

0

133

2

지정 경로에 템플릿 파일 만드는 단축키가 뭔가요?

0

121

2

채팅 내역을 영구적으로 저장하고 싶습니다.

0

89

1

질문이 있습니다.

0

164

1

구독 채팅 구현

0

212

1

헷갈려서 질문드립니다.

0

354

2

@login_required 장식자를 적용한후에는 로그인을 성공하면 채팅방으로 어떻게 이동을 하는 건가요?

1

276

1

docker run -d --restart always --name redis7 --publish 6379:6379 redis:7

0

261

1

websocket 자바스크립트 클라이언트 구현?

0

361

1

메세지 리액션 : 좋아요. 질문 드립니다.

0

359

1

{유저명}님이 메세지 입력 중입니다. 메세지 질문드립니다.

0

609

1

채팅 로비에서 유저수 노출을 위하여

0

323

1

채팅방에서 마지막 유저가 나가면 채팅방 자동 삭제 질문드립니다.

0

430

1

동기방식의 consumer 클래스와 비동기방식의 consumer클래스의 차이가 뭔지 궁금합니다.

0

425

1