취미삼아 배우는 프로그래밍

20191222 드디어 한 페이지는 완성되간다. 본문

파이썬(장고)

20191222 드디어 한 페이지는 완성되간다.

Nadure 2019. 12. 22. 23:59

현재 구상하고 있는 ERP는 기초자료에서부터 흘러가기 때문에

이 부분이 가장 중요한 부분이라 생각한다.

  • 기초 정보 입력
  • 기초 정보 다수의 사용자가 입력된 기초자료에서 한 두 가지 항목만 수정

 

기초자료가 부실, 빈약 등 이상하다면 애초에 흘러갈 수가 없는 구조다.

근데 나는 뭣도 모르는 상태에서 제일 중요한거부터 건들고 있으니,,

뒤돌아 보면 정말 거대한 삽질이었는거 같다.

 

그리고 밑을 보면 아직도 삽질할 곳이 많아 보인다.

 

여튼,

 

지금의 결과물만 따지고 보자면

정말 이게 왜 삽질이었나 싶다.

 

근데 과정이 삽질일만 했다.

 

  1. RESTFRAME_WORK를 건드린점
  2. 뭣도 모르고 Serializers를 만든 점
  3. django3.0에 뛰어든 점
  4. 고놈의 json
  5. 아주 고얀 AJAX

 

1. RESTFRAME_WORK를 건드린 점 &

2. 뭣도 모르고 Serializers를 만든 점

 

누가 django를 쓰면 빠르게 홈페이지를 만든다고 했던가.?

그래, django만 쓰고, 단일 페이지를 보여주면

참 빠르고 쉽고 맞다.

 

  • base 템플릿을 만들고 불러오기 척척척
  • body에 텍스트만 척척척
  • 템플릿 태그로 유동적인 단어도 척척척

 

기타 모델 뭐 그런거 만들고 일절 전혀 필요 없다.

 

그치만, 이거면 인터넷에 이북이 떠돌아 다니는 거랑 뭐가 다를까..

 

해서 RESTFRAME_WORK + AJAX CALL

로 화려하게 해보자 생각도 있었다.

이게무어야?

 

는 자바스크립트로 도배돼버렸다.

이유는 다음과 같았다.

  • Serializer를 만들기는 너무 까다로웠다.
  • 여기서 까다롭다는건, 다른거 하나 되게 만드려고 설정하나 건드렸다가 잘되던거 코드도 뒤엎는 수준이다.
  • 여기에 더해, 뒤엎는 코드는 Serializer 만 뒤엎는게 아니다. html쪽도 엎어줘야한다(장고가 설마 나만 엎을거야? 하고 얘기함)

 

3. django3.0에 뛰어든 점

django 3.0 .. 정말 기대 많이 했다.

처음엔,

아뭐야 이거 하나 추가되고 끝인가?

그냥 코드만 대충 써주면 전부다 비동기화 시켜주는 방향으로 되는줄 알았는데?

하고 생각했었다.

 

Django 3.0은 장고를 ASGI 로 구동하는걸 지원하는걸 통해 비동기식에 완벽히 맞추어 가는 여정을 떠납니다.(대충이런 뜻)

뭔가 되게 거창해보였는데,

저거만 줬었다.

그래서 기존 장고 버전에서 업그레이드를 뙇 시켰는데, 문제가 바로 나오더라

 

호환성이 안 맞는 다고 하는 각종 버그,

오류메세지.

얼마 없던 기존 코드는 군데군데 구멍이 난 상황이었고

뭐만 하면 뭐가 안된다고 난리나고 그랬다.

 

그래서 그냥 다시 제로부터 시작했다. ^^ (고맙습니다. Andrew..)

딱 바꼈구나 체감이 됐던건, channles를 깔고, installed app에 channels만 넣어줘도

 

알아서 asgi로 구동된ㄷ ㅏ..

 

python manage.py runserver 하니, 뭔가 깨림칙해서 그냥 channels를 지웠다.

여튼, 새로 시작하니 딱히 뭐 버그라는게 보이진 않는다.

 

4. 고놈의 json

json 라이브러리 임포트해서 그냥 갖다 붙이고 내가 알아서 json으로 하는줄 알았다.

그런데 그게 아니고,

REST_FRAMEWORK = {
    'DEFAULT_PARSER_CLASSES': (
        'rest_framework.parsers.JSONParser',
    )
}

 

이걸 써줘야 들어오는 데이터를 Json형식으로 받아서 알아서 해주더라..

 

참 더럽게 복잡한게 아닐 수 없다.

내가 가장 난해했던 것들이 이런 것들이었다.

LOOCKUP_FIELD가 명시돼 있지 않으면, foreign key를 씀에 있어서 난항을 겪는다.

 

아고

글 적다가

잘 시간이라 얼른 자야겠다.

 

잘 되는 부분 gif만 올리고 자야지..

 

 

우클릭 메뉴를 넣었다. 내용은 Javascript 의 Clseset('table > tbody > tr')을 활용했다.

 

FORM입력에 시간이 너무 많이 들었다. 시행착오가 엄청 많았다. 입력부분을 Json으로 보내고, 서버에서는 Json부분을 텍스트로 저장한다.

 

PUT을 통해 데이터를 직접 쏘고 있다.(실제 체크하면 저대로 저장되서 새로고침해도 저 값이다.)

 

Comments