Computer 비관심/Django 12

[장고] 실무에서 사용했던 장고 정보 모음 ADMIN위주

장고에 대한 정보를 얻기가 쉽지가 않지만 해외 장고 유저가 적은 글을 보면 쉽게 찾을 수 있다. 하지만 장고어드민를 제대로 사용할 수 있는 정보를 찾기는 정말 어렵다고 생각한다. 하지만 장고를 사용하는데 장고어드민을 제대로 활용하지 못 한다면 장고프레임웍의 큰 장점을 버리는 셈이다. 아래 자료들은 5개월간 장고 프로그래머로써 찾았던 어드민, 혹은 장고 관련된 실무에서 발생하는 문제 해결에 관련된 자료를 모은 것을 올린것이다.(다 지우려 했는데 혹시라도 필요하실 분들이 있을지도 모른다는 생각에 남기게 되었습니다.) 0. 커스텀 유저 만들기https://www.youtube.com/watch?v=0bAJV0zNWQw 1. AbstractBaseUser 대신 AbstractUser를 서브클래스함your_app..

언제 쓸지 모르겠지만...깃 설정과 heroku 디플로이

장고걸즈와 헤로쿠 사이트를 참조하면 어렵지 않다. 로컬/프로덕션 설정 (옜날 방식- 지금 장고 걸즈에 나온게 더 쉬운듯) 세팅을 local environment와 production environment 로 나눈다.1. 프로젝트에 settings 폴더를 만든 뒤 그 안에 __init__.py (모듈을 만들기 위해)local.pyproduction.py넣는다. 2. 원래 settings.py 를 old_settings.py로 바꾼뒤 안에 있는 내용을 production.py와 local.py에 넣는다.3. production.py 파일에 들어가 DEBUG = False 로 BASE_DIR = os.path.dirname(os.path.dir(__file__))4. settings/__innit__.py에서..

장고에서 폼 에러 찾기

장고에서 커스텀하게 폼을 만들때는 자동으로 어떤 필드가 문제가 되는지 알려주지 않는다.form.is_valid()를 사용해도 벨리드 한지만 알려주지 어떤것에 문제가 있는지 가르쳐 주지 않는데. 이때는 form.errors.as_data()를 사용하면 어떤 필드에서 문제가 발생했는지 알 수 있다. def post(self, request, *args, **kwargs): print('포스트') abc = CreateQNAForm(request.POST) print(abc.is_valid()) print(request.POST) return HttpResponseRedirect('/help/qna/new/')

지금까지 하면서의 장고프레임웍의 장점과 단점

지극히 주관적인 의견이다. 파이썬을 1월에 시작해서 1월 말에 장고를 처음 시작했다. 약 한달 가까이 장고를 하면서 느낀점이다. 참고로 아직 django를 깊게 다루지 못한것 같다. 이전에는 잘하지는 않지만 wordpress, nodejs express framework와 프레임워크를 사용하지 않은 php에 대한 경험이 있다. 장고의 단점부터 말하자면 개인적인 의견으로 처음 웹을 배운다고 하면 php가 가장 난이도가 쉽다고 생각한다. 처음으로 컴퓨터를 배울때 사용한 언어가 php였는데 확실히 쉬웠다. 배운지 한달만에 커뮤니티사이트를 만들 수 있었다. 반면에 장고는 러닝커브가 높다. 개인적으로도 일반적인 사용자의 의견도 다른 프레임웍 보다 어렵다고 한다. 프레임워크라는 것에 대한 개념을 익혀야 하며 객체지..

[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-전달받..