55,000원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결파이썬/장고로 웹채팅 서비스 만들기 (Feat. Channels) - 기본편
채팅방 삭제 관련 오류가 뭐때문인지 모르겠습니다..
안녕하세요새 프로젝트를 만들어서 강사님 강의대로 구현했을 때에는 에러가 뜨지 않았는데요제가 하던 간단한 프로젝트에서 채팅기능 추가하려고 하니까, 에러가 나네요.. 강의 동영상 7분전까지는 오류없이 채팅방 삭제가 잘 되었는데요. 8분쯤 나오는 채팅방 삭제에 따른 웹소켓 연결 끊기 부분에서 잘못된것 같습니다.채팅방을 만든 상태에서 채팅방을 삭제하면WebSocket DISCONNECT /ws/chat/11/chat/ [127.0.0.1:54878] Task exception was never retrieved future: <Task finished name='Task-335' coro=<Connection.disconnect() done, defined at /Users/hugo/Desktop/venv/chaegbang/lib/python3.10/site-packages/redis/asyncio/connection.py:723> exception=RuntimeError("Task <Task pending name='Task-335' coro=<Connection.disconnect() running at /Users/hugo/Desktop/venv/chaegbang/lib/python3.10/site-packages/redis/asyncio/connection.py:736>> got Future <Future pending> attached to a different loop")> Traceback (most recent call last): File "/Users/hugo/Desktop/venv/chaegbang/lib/python3.10/site-packages/redis/asyncio/connection.py", line 736, in disconnect await self._writer.wait_closed() # type: ignore[union-attr] File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/asyncio/streams.py", line 344, in wait_closed await self._protocol._get_close_waiter(self) RuntimeError: Task <Task pending name='Task-335' coro=<Connection.disconnect() running at /Users/hugo/Desktop/venv/chaegbang/lib/python3.10/site-packages/redis/asyncio/connection.py:736>> got Future <Future pending> attached to a different loop Task exception was never retrieved future: <Task finished name='Task-336' coro=<Connection.disconnect() done, defined at /Users/hugo/Desktop/venv/chaegbang/lib/python3.10/site-packages/redis/asyncio/connection.py:723> exception=RuntimeError("Task <Task pending name='Task-336' coro=<Connection.disconnect() running at /Users/hugo/Desktop/venv/chaegbang/lib/python3.10/site-packages/redis/asyncio/connection.py:736>> got Future <Future pending> attached to a different loop")> Traceback (most recent call last): File "/Users/hugo/Desktop/venv/chaegbang/lib/python3.10/site-packages/redis/asyncio/connection.py", line 736, in disconnect await self._writer.wait_closed() # type: ignore[union-attr] File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/asyncio/streams.py", line 344, in wait_closed await self._protocol._get_close_waiter(self) RuntimeError: Task <Task pending name='Task-336' coro=<Connection.disconnect() running at /Users/hugo/Desktop/venv/chaegbang/lib/python3.10/site-packages/redis/asyncio/connection.py:736>> got Future <Future pending> attached to a different loop이렇게 나옵니다. 검색해도 잘 모르겠습니다...새로운 프로젝트만들어서 했을 때에는 이런 오류가 안떴는데 패키지 버전문제일까요??
- 미해결파이썬/장고로 웹채팅 서비스 만들기 (Feat. Channels) - 기본편
django-rest-framework에 channels를 적용하고 싶습니다.
선생님, 안녕하세요~django rest framework와 함께 django channels를 사용하고 싶어서 질문드리게되었습니다!liveblog 실습 부분까지는 무난하게 따라올 수 있었는데요,drf와 django channels를 동시에 사용해보고 싶어서,예전에 작업해둔 drf 적용한 project에서 channels를 추가하여 실행해보려고 했는데,asgi를 적용하고 나서부터 runserver 시 TypeError: object HttpResponse can't be used in 'await' expression 라는 에러메시지를 받습니다.channels 공식 문서에 있는 djangochannelsrestframework 라는 프로젝트와 channels-api 라는게 있던데 아직 적용해보지는 않았습니다drf와 channels를 함께 사용하는데에 추천하시는 라이브라리나 이용방법이 있을까요?검색만으로는 막막하여 정리되지 않은 상태에서 질문을 드리는 것 같아 죄송하네요.좋은 강의 항상 감사합니다!!!
- 미해결파이썬/장고로 웹채팅 서비스 만들기 (Feat. Channels) - 기본편
안녕하세요. Layer를 포함한 이번 예제에서 요청~응답 간 프로세스가 알고 싶습니다.
이전에 웹소켓 동작방식에 대해 남겨주신 답변 덕에 기본적인 동작방식은 이해했습니다.다만 이번 예제에서 Layer가 개입되니 다시 헷갈리기 시작하네요 ㅠPost 인스턴스는 Mixin을 통해 상속받은 CHANNEL_LAYER_GROUP_NAME를 가지고 있고 시그널을 통해 channel_layer_group_send를 호출하여 자신이 속한 그룹으로 메세지를 보내는 것 까지는 이해했습니다.그렇다면 channel_layer_group_send를 통해 보내는 메세지는 어떻게 LivingblogConsumer로 전송되어 처리되는 건가요? 단순히 Post모델이 가지는 group이름과 Consumer에 명시해놓은 group이름이 같기 때문에 내부적으로 알아서 LivingblogConsumer를 호출하여 처리하는것이 맞나요?Layer는 서버와 클라이언트(Consumer) 중간 과정에 존재하며, 그룹명으로 구별하여 메세지 전송 대상을 구별하는 용도이고(즉 서로 다른 Consumer instance들을 묶어주는 역할), 이번 예제에서는 Redis가 그 역할을 수행하고 있다고 생각하면 될까요?뭔가 알듯 말듯하긴 한데 확신이 안 서네요
- 해결됨파이썬/장고로 웹채팅 서비스 만들기 (Feat. Channels) - 기본편
안녕하세요 실습 6:16 부분에서 오류가 발생합니다.
LG+ 사용중입니다. 해결 방법이 있을까요??
- 미해결파이썬/장고로 웹채팅 서비스 만들기 (Feat. Channels) - 기본편
템플릿 응답 관련해 문의드립니다.
안녕하세요 강사님 :))다름이 아니라 강의 내용에서 ws.send() 및 ws.onmessage() 관련해 문의드립니다.서버 구동 후 웹에서 ws.send("hello") 하게 되면 undefined만 뜨게 되고, ws.onmessage("hello")를 하게 되면 event 자체는 hello가 뜨는데, event.data는 undefined 만 출력됩니다.여기서 궁금한 부분이 2가지가 있는데요!send()로 연결 지었을 때 onmessage()로 연결되게끔 하는 추가 설정이 필요한건지?event 자체는 입력한 문자열이 출력되는데, event.data는 undefined가 나오는 이유가 무엇인지이렇게 두 가지 질문드립니다.감사합니다. 새해 복 많이 받으세요~ :))
- 미해결파이썬/장고로 웹채팅 서비스 만들기 (Feat. Channels) - 기본편
웹소켓 동작 방식에 대해 질문이 있습니다.
웹소켓부분은 처음 배워봐서 조금 헷갈리네요 ㅠㅠapp의 views에서 렌더링 된 echo_page.html은 클라이언트를 의미그 클라이언트에서 ws객체를 이용해 여러가지 이벤트 핸들러 처리와 메세지를 웹소켓 서버(ws://localhost:8000/ws/echo/)로 전송할 수 있음웹소켓 서버로 전송된 메세지는 routing.py에 등록된 path에 맞게 매칭된 Consumer를 호출호출된 Consumer는 receive 오버라이딩을 통해 클라이언트에서 보낸 메세지에 대해 후속 처리이 프로세스로 흘러가는게 맞나요? 한 가지 더 궁금한 점은이번 예제의 EchoConsumer에서 send로 보낸 메세지는 단순히 '메세지 전송 요청을 보냈던' 클라이언트에게 되돌아가는데 만약 서로 다른 여러 클라이언트에서 요청이 들어오면 각 클라이언트는 어떻게 구별하나요? http의 헤더처럼 요청 주체를 구별하는 방법이 웹소켓 통신에도 따로 있는건가요?
- 미해결파이썬/장고로 웹채팅 서비스 만들기 (Feat. Channels) - 기본편
run_test_hello_channel.py 오류
현재 Mac(M1)에서 실습 중인데 get_channel_layer() 시 로컬호스트를 계속 불러와 오류가 납니다.run_test_helllo_channle.pyimport asyncio import os import django from channels.layers import get_channel_layer os.environ["DJANGO_SETTINGS_MODULE"] = "mysite.settings" # os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.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()) 결과~/Documents/GitHub/Quickie test-chat !2 > python3 run_test_hello_channel.py py Quickie 13:13:37RedisChannelLayer(hosts=[{‘address’: ‘redis://localhost:6379’}])Traceback (most recent call last): File “/Users/kang-yongmin/Documents/GitHub/Quickie/venv/lib/python3.10/site-packages/redis/asyncio/connection.py”, line 567, in connect await self.retry.call_with_retry( File “/Users/kang-yongmin/Documents/GitHub/Quickie/venv/lib/python3.10/site-packages/redis/asyncio/retry.py”, line 59, in call_with_retry return await do() File “/Users/kang-yongmin/Documents/GitHub/Quickie/venv/lib/python3.10/site-packages/redis/asyncio/connection.py”, line 604, in connect reader, writer = await asyncio.openconnection( File “/Users/kang-yongmin/.pyenv/versions/3.10.4/lib/python3.10/asyncio/streams.py”, line 47, in open_connection transport, = await loop.createconnection( File “/Users/kang-yongmin/.pyenv/versions/3.10.4/lib/python3.10/asyncio/base_events.py”, line 1072, in create_connection raise OSError(‘Multiple exceptions: {}‘.format(OSError: Multiple exceptions: [Errno 61] Connect call failed (‘::1’, 6379, 0, 0), [Errno 61] Connect call failed (‘127.0.0.1’, 6379)During handling of the above exception, another exception occurred:Traceback (most recent call last): File “/Users/kang-yongmin/Documents/GitHub/Quickie/run_test_hello_channel.py”, line 23, in <module> asyncio.run(main()) File “/Users/kang-yongmin/.pyenv/versions/3.10.4/lib/python3.10/asyncio/runners.py”, line 44, in run return loop.run_until_complete(main) File “/Users/kang-yongmin/.pyenv/versions/3.10.4/lib/python3.10/asyncio/base_events.py”, line 646, in run_until_complete return future.result() File “/Users/kang-yongmin/Documents/GitHub/Quickie/run_test_hello_channel.py”, line 17, in main await channel_layer.send(‘hello’, message_dict) File “/Users/kang-yongmin/Documents/GitHub/Quickie/venv/lib/python3.10/site-packages/channels_redis/core.py”, line 218, in send await connection.zremrangebyscore( File “/Users/kang-yongmin/Documents/GitHub/Quickie/venv/lib/python3.10/site-packages/redis/asyncio/client.py”, line 502, in execute_command conn = self.connection or await pool.get_connection(command_name, **options) File “/Users/kang-yongmin/Documents/GitHub/Quickie/venv/lib/python3.10/site-packages/redis/asyncio/connection.py”, line 1363, in get_connection await connection.connect() File “/Users/kang-yongmin/Documents/GitHub/Quickie/venv/lib/python3.10/site-packages/redis/asyncio/connection.py”, line 575, in connect raise ConnectionError(self._error_message(e))redis.exceptions.ConnectionError: Error connecting to localhost:6379. Multiple exceptions: [Errno 61] Connect call failed (‘::1’, 6379, 0, 0), [Errno 61] Connect call failed (‘127.0.0.1’, 6379).
- 미해결파이썬/장고로 웹채팅 서비스 만들기 (Feat. Channels) - 기본편
혹시 이 오류가 왜 발생하는지 알 수 있을까요?
분명 로컬에서는 잘 되는데외부 서버에서 돌려보면 채팅방을 누르면 밖으로 팅깁니다.(index 페이지로)터미널을 보면File "/home/chanjin613/.local/lib/python3.9/site-packages/asgiref/sync.py", line 490, in thread_handler return func(*args, **kwargs) File "/home/chanjin613/.local/lib/python3.9/site-packages/channels/consumer.py", line 125, in dispatch handler(message) File "/home/chanjin613/.local/lib/python3.9/site-packages/channels/generic/websocket.py", line 38, in websocket_connect self.connect() File "/home/chanjin613/mydjangochat/chat/consumers.py", line 33, in connect async_to_sync(self.channel_layer.group_add)(AttributeError: 'NoneType' object has no attribute 'group_add'엄청 긴데 맨 마지막 부분을 가져왔습니다. 아니, 왜 로컬에서는 잘 되는데 웹 서버에서 돌리면 이럴까요?
- 미해결파이썬/장고로 웹채팅 서비스 만들기 (Feat. Channels) - 기본편
혹시... 배포를... 어떻게...
코드를 CS50 IDE라는 곳에 clone시켜서한번 이 채팅방을 실제 public한 URL로 만들어서 서로 다른 기기에서 인터넷으로 채팅할 수 있게 하고싶은데요 ㅠㅠCS50 IDE이전에 google cloud platform, 구름IDE은 파이썬이 3.6이라 안됐고CS50 IDE에서는 python이 3.9버전이라 여기에다가 전부 다 깔고 requirements도 다 돼서python manage.py runserver 127.0.0.1:8000하면 http:127.0.0.1:8000/에 들어가지기는 합니다. 그런데 다른 친구는 flask로 똑같이 CS50 IDE에 넣고 서버를 돌리면 접속가능한 외부 링크를 자동으로 줬다길래 저도 혹해서 똑같이 해봤는데 외부 링크를 주지 않아요...이거 CS50 IDE로 배포할 수가 있을까요?불가능하다면 집 컴퓨터로 nginx나 aws 이런걸로 배포해야되는 건가요? 장고로 사이트 배포하기가 많이 어렵네요 ㅠㅠ CS50 IDE는 nginx를 깔 수가 없어요 권한이 없다고 떠요...
- 미해결파이썬/장고로 웹채팅 서비스 만들기 (Feat. Channels) - 기본편
배포 할 때 오류...
git으로 clone한 다음requirements랑 django랑 daphnet 다 다운한 다음python manage.py migrate 및python manage.py runserver를 해보려고 하는데아래와 같은 오류가 뜹니다...분명 필요한 라이브러리는 다 받은 것 같은데...뭐가 필요한 것일까요?pip install attrs를 해도Defaulting to user installation because normal site-packages is not writeableRequirement already satisfied: attrs in /usr/local/lib/python3.9/site-packages (20.3.0)이미 있다고 나옵니다.하지만 manage.py 상단에 import attrs나 from attrs import define해도 동일한 오류가 나옵니다.
- 해결됨파이썬/장고로 웹채팅 서비스 만들기 (Feat. Channels) - 기본편
그리고 여기서 막혔어요...
이 수업에서 하라는 대로 다 하고 :8000/chat/ 들어가려니까이런 오류가 뜨면서 막혔습니다 ㅠㅠ4번이나 훑어봤는데 어디서 틀린건지 모르겠습니다 ㅠㅠㅠ코드는 진짜 4번이 아니라 8번은 봤습니다 처음부터 끝까지. 틀린 곳은 없습니다... ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡindex.html에서 'test'를 숫자로 바꿔주니까 됐습니다왜 강의에서는 'test'여도 잘 되고 저는 안된건가요?제가 'test'를 12로 바꾸고 했는데:8000/chat/은 잘 들어가지지만테스트 채팅방 들어가기를 누르면 다시 에러가 뜹니다... 그러니까 chat/test/chat이라는 채팅방이 없고chat/12/chat이라는 채팅방만 존재하니까 그런거 같아요 어떻게 해야하죠?
- 해결됨파이썬/장고로 웹채팅 서비스 만들기 (Feat. Channels) - 기본편
[해결된 줄 알았는데 안됨] 실습)초간단 Echo 구현 실행 오류...
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡhttp:127.0.0.1:8000/echo 들어가면이렇게 나오기는 하는데!콘솔이랑 파이참의 터미널을 보면!강의랑 다르게 이런 오류가 뜨긴 합니다!파이참에서 더 정확하게이런 오류가 뜹니다! 또, ws.send를 해도... 음...사실 제 친구 컴퓨터랑 2대를 동시에 하고 있는데 나오는 오류는 동일합니다.맨 처음 pyenv install 3.10.4 였나 그것도 동일한 core 머시기 MSI오류떠서 pyenv 쓰지 않았고..
- 해결됨파이썬/장고로 웹채팅 서비스 만들기 (Feat. Channels) - 기본편
0:56 include import하기
0:56 부분에서 강의를 보면 import를 어디서 할거냐 할 때 3개나 뜨는데제 컴퓨터에서는 From xml.etree.ElementInclude import include선지가 이거 하나밖에 안떠요...그냥 파일 맨 위에 from 장고.urls import include쓸까요?
- 해결됨파이썬/장고로 웹채팅 서비스 만들기 (Feat. Channels) - 기본편
[해결됨] 6:00 마지막 pip install -r requirements.txt 오류
requirements.txt 토씨 하나 안틀리고 작성하고,pip install -r requirements.txt를 하면 return data.decode(UnicodeDecodeError: 'cp949' codec can't decode byte 0xec in position 2: illegal multibyte sequence오류가 떠서 검색 결과, 파일 읽을 때는 file_open = open("file path", 'r', encoding="UTF-8") 이렇게 하라는 글이 많았는데, 해당 f.read하는 라이브러리 찾아가서(req_file.py)try: with open(url, "rb", encoding="UTF-8") as f: 이렇게 바꿔주고 실행해도 에러 나오구요(ValueError: binary mode doesn't take an encoding argument)...어디서는 또pip install pygetwindow==0.0.1 하고 다시 해보면 되었다는 글이 있어서 해보았는데도 안되네요 ㅠㅠㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ앜ㅋㅋㅋhttps://www.inflearn.com/questions/180989/pip-install-r-requirements-txt-%EC%98%A4%EB%A5%98여기 말대로 주석은 지우고 실행해보니까 됩니다!!!그런데 궁금한 점) 왜 강사님 컴퓨터에선 되고 내 컴퓨터에서는 안되는지... 올해 새로 산 노트북인데 ㅠㅠ
- 해결됨파이썬/장고로 웹채팅 서비스 만들기 (Feat. Channels) - 기본편
3:41초 python -m pip install "channels[daphne]~=4.0.0" 시 오류...
시작도 하기 전에 갖가지 오류가 너무 난무해서 슬프네요 ㅠㅠ 왜 그럴까요? ㅠㅠㅠ
- 해결됨파이썬/장고로 웹채팅 서비스 만들기 (Feat. Channels) - 기본편
3:29초까지 따라갔는데 ls에서
ls하면 manage.py가 없어요mysite, venv만 있고 manage.py가 없는데요?!