전체 글 161

[4]장고 채널스(django channels) json 데이타 전송

콘슈머에 json과 parse를 임포트 한다. 지금까지 text: message.content['text'] 로 돌려보냈는데 이번에는 text: json.dumps()를 사용하여 데이타를 브라우저에 json 형태로 보낸다. 영문 튜로리얼과 다르게 우리는 한국말을 사용하기 때문에 , ensure_ascii=False를 붙여주어 한글이 아스키코드로 바뀌어서 나오는 것을 막았다.# consumers.py import json from urllib import parse from channels import Group from channels.sessions import channel_session @channel_session def ws_add(message, room): query = parse.parse..

[3] 장고 채널스(django chennals) urls를 기반으로 한 라우팅

우리가 이전에 만든 route에 path 를 다음과 같이 추가한합니다.그러면 url로 consumers.ws_add를 실행 할 수 있다. 이것은 인자를 ws_add로 넘기는 방법은 urls.py 에서 한 방법과 같습니다.# routing.py channel_routing = [ ... route('websocket.connect', 'chat.consumers.ws_add', path=r'^/chat/(?P\w+)$'), ]consumers.py를 수정합니다. channel_session을 불러오고 @channel_session 데코레이터를 붙이면 장고 세션처럼 사용할 수 있는 message.channel_session을 제공합니다.아래코드에서는 소켓접속시 room이라는 인자를 전달받아 'chat-전달받..

[2] 장고 채널스(django chennals) Group

Group의 개념 urls의와 비슷한 개념의 routing.py에 이번에는 websocket.connect를 추가합니다.websocket.receive는 소켓에 message가 전달 됬을때 발생하며websocket.connect는 소켓에 소켓이 생성됬을 때 발생합니다. #routing.py channel_routing = [ route('websocket.receive','chat.consumers.ws_echo'), route('websocket.connect', 'chat.consumers.ws_add'), ]그러면 consumers.py에서 ws_add를 만들고 그룹에 있는 사람들이 메시지를 모두 받을 수 있도록 ws_echo를 수정해 보겠습니다. 이전 글에서도 말했듣이 consumers.py는 장..

[1] 장고 채널스(django channels) 웹소켓 에코

장고 채널은 장고 1.10 이상에서 지원 1.설치# requirements.txt asgi-redis==1.0.0 channels==0.17.3 daphne==0.15.0 Django==1.10.4requirements.txt 파일을 만든 뒤 pip install -r requirements.txt를 입력하여 requirements.txt에 있는 모듈을 모두 설치 한다. 2. 앱 세팅 - 프로젝트를 만들고 앱을 만든다. - settings.py의 INSTALLED_APPS에 channels와 새로 생성한 앱 추가한다. (여기선 앱의 이름을 chat 이라고 만듬)# settings.py INSTALLED_APPS = ( ... 'channels', 'chat', ) ... CHANNEL_LAYERS = {..

[requests.post] python으로 보낸 데이터 php로 받기

python으로 보낸 데이터 php로 받기 인터넷에서 python에서 데이타를 보내는 예제를 많이 찾아 볼 수 있다. 하지만 문제는 파이썬3.x버전에서는 사용해야 하는 모듈이 인터넷에 나온 기존 예제와 다르다는 것이다. 또한 데이타베이스에 저장을 하는 것이 아닌 쿠키를 생성함으로써 데이타가 잘 전송되는지 알아보려고 하는 실수 때문에 시간이 오래 걸렸다. 작동되는 코드는 다음과 같이 간단하다. import requestsuserdata = {"firstname": 'frompython', "lastname": "Doe", "password": "jdoe123"}resp = requests.post('http://localhost/test/testing.php', data=userdata)print(resp..

카테고리 없음 2017.02.11

함수의 스코프

자바스크립트 함수에서 전역변수로 사용한 경우 var로 선언하여 로컬변수로 선언하였더니 전역변수에 영향을 미치지 않았다. 파이썬의 함수안 로컬변수는 전역변수에 영향을 주지 않는다. 그러므로 함수가 실행이 끝난뒤 로컬 변수는 사라진다. 영향을 주고 싶다면 함수네에서 global로 변수를 선언해야 한다. 하지만 리스트나 딕셔너리는 레퍼런스를 하므로 영향을 받는다.

[파이썬과 자바스크립트의 차이] 리스트에서 for... in

자바스크립트와 파이썬은 같은 명령어로 다른 결과가 나올 수 있다. 아직 더 살펴봐야 겠지만 for in에서 다른 점을 찾게 되었다. 자바스크립트를 먼저 배운 까닭에 자바스크립트에서 for in을 실행했을때 나오는 결과를 생각하고 파이썬에서 for in을 하니 오류가 발생했다. 파이썬에서pocketmons = ['피카츄','라이츄','파이리','꼬북이' ] 리스트를 for ... in 한 결과 자바스크립트에서의 결과 같은 명령어 다른 결과.... 그렇다면 dictionary에서는 어떨까? 똑같이 나온다.

파이썬 버전 3.5 exe 파일로 만들기

Python과 PyQt를 사용해서 프로그램을 만든 뒤 EXE파일로 만드는 방법 python 3.5버전은 py2exe가 되지 않는다. EXE 파일로 꼭 만들고 싶어서 헤매고 헤맨뒤에 PyInstaller라는 모듈을 찾았다.이 모듈을 사용하면 정말 쉽게 .py파일을 .exe파일로 컴파일 할 수 있다. 다음은 exe파일로 바꾸는 과정이다. ****** 추가 ******** **2020 7월 23일 **1. 용량이 너무 커서 줄이는 법을 확인해보니가상환경을 만들고 거기에 사용할 모듈들을 설치하고 pyinstaller도 설치한 뒤 pyinstaller 파일이름.py를 실행하면 exe로 만드는 시간도 줄 뿐더러 용량역시 줄어든다. 2. 아이콘을 바꾸고 싶으면 커멘드에 -i "icon.ico"아이콘을 ico파일로 바..